09-Linux & Virtual Box

Virtual Box & Linux(Part.14)| Linux ユーザー管理(2)| 現役エンジニア&プログラミングスクール講師

目標

「スケルトンディレクトリ」について概要を理解する。
「新規ユーザーの追加方法」について理解する。
「ユーザー情報の変更方法」について理解する。
「ユーザーのパスワード変更方法」について理解する。
「ユーザーの削除方法」について理解する。
「wheelグループ」所属のユーザーのみroot権限を付与する設定を理解する。

Linuxでのユーザー管理の概要(2)

「スケルトンディレクトリ」

「スケルトンディレクトリ」とは

新規のユーザーを追加した場合、そのユーザーの「ホームディレクトリ」が作成されます。その時「必要な設定ファイル(隠しファイル)」などもホームディレクトリ内に準備されます。

これらの設定ファイルはスケルトンディレクトリ(「/etc/skelディレクトリ」)とよばれる場所に準備されていて、新規ユーザー追加時に、新規ユーザーのホームディレクトリにコピーされます。

コピーされるファイルの例としてはログインシェルなどが利用する設定ファイル(隠しファイル)などがあります。

ユーザー追加時に配布したいファイルはスケルトンディレクトリに準備することで自動的に追加ユーザーのホームディレクトリに配布されます。

スケルトンディレクトリの編集はrootユーザーのみが行えます。

Linuxでのユーザー管理のコマンド(2)

スケルトンディレクトリの中身の確認とファイル追加

スケルトンディレクトリの中身の確認とファイル追加

一般ユーザーで「/etc/skel/ディレクトリ」の中身を確認します。lsコマンドのオプション「A」は「.」と「..」を除いて隠しファイルを表示してくれます。

[rocky001@rockylinux001 ~]$ ls -A /etc/skel/
.bash_logout .bash_profile .bashrc .zshrc

rootユーザーに切り替えて「/etc/skel/ディレクトリ」の中に新規ファイルを追加します。
[rocky001@rockylinux001 ~]$ su –
Password:
[root@rockylinux001 ~]# touch /etc/skel/samplereadme
[root@rockylinux001 ~]# ls -A /etc/skel/
.bash_logout .bash_profile .bashrc .zshrc samplereadme

新規ユーザーの追加・情報とパスワード変更・削除方法

ユーザーの追加・情報、パスワードの変更・削除の操作はroot権限を得て行います。root権限の獲得には「suコマンド」を利用した「rootユーザー」への切り替え、もしくは「sudoコマンド」を利用して行います。

Linuxでは「suコマンド」を使用した「rootユーザー」への切り替えは推奨されてなく、「sudo」コマンドを使用した操作が利用されます。ですが、この記事では「suコマンド」を利用した切り替えで操作を行っています。

新規ユーザーの追加方法

useraddコマンド

ユーザーアカウントを新規作成するコマンドです
文法:
useradd [省略できるOP] ユーザー名
※OP:オプションのことです。
コマンドの参考資料はこちら

オプションには次のようなものが利用されます。
「c」:GECOSフィールドにコメント(本名や本人ID)を記載します。
「d」:ホームディレクトリを指定します。
「g」:プライマリグループを指定します。
「G」:プライマリグループ以外の所属グループを指定します。
「s」:ログインシェルを指定します。
「U」:ユーザーと同じ名前のグループを作成します。
「m」:ホームディレクトリを自動作成します。

コメントに「ID」、ホームディレクトリの自動作成、ユーザーと同じ名前のグループ作成、プライマリグループ以外のグループ参加を行う場合は次のようにコマンドを入力します。

#useradd コメントを”で指定 -m -U -G サブグループの指定 新規ユーザー名
記述具体例
# useradd -c ‘howa12345’ -m -U -G subgroupname newusername

useraddコマンドを利用して新規ユーザーを追加してみます。ユーザーが追加されたかは「/etc/passwd」を確認します。

[root@rockylinux001 ~]# useradd test002
[root@rockylinux001 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin



tcpdump:x:72:72::/:/sbin/nologin
rocky001:x:1000:1000:rocky001:/home/rocky001:/bin/bash

test002:x:1001:1001::/home/test002:/bin/bash
↑ユーザーが追加されました。

ホームディレクトリの中身を確認してみると「スケルトンディレクトリ」内のファイルがコピーされたのが確認できます。

[root@rockylinux001 ~]# ls -A /home/test002/
.bash_history .bash_logout .bash_profile .bashrc .zshrc samplereadme

ユーザー情報の変更方法

usermodコマンド

ユーザーアカウントの情報を変更するコマンドです
文法:
usermod [省略できるOP] ユーザー名
※OP:オプションのことです。
コマンドの参考資料はこちら

オプションには次のようなものが利用されます。
「c」:GECOSフィールドにコメント(本名や本人ID)を変更します。
「d」:ホームディレクトリを変更します。
「g」:プライマリグループを変更します。
「G」:プライマリグループ以外の所属グループを変更します。
(「a」:「G」と一緒に利用して指定グループをサブグループとします。)
「s」:ログインシェルを変更します。
「L」:ユーザーをロック(ログインできなく)します。
「U」:ユーザーのロックを解除します。
「l」:ユーザー名を変更します。

ここでは「l」オプションを利用してユーザー名を変更してみたいと思います。

[root@rockylinux001 ~]# usermod -l rocky002 test002
[root@rockylinux001 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin



rocky001:x:1000:1000:rocky001:/home/rocky001:/bin/bash

rocky002:x:1001:1001::/home/test002:/bin/bash
↑ユーザー名が変更されました。

続けて、「d」オプションを利用してホームディレクトリの変更を行ってみます。
コマンドは次のように入力します。
usermod -d ホームディレクトリのパス ユーザー名

[root@rockylinux001 ~]# usermod -d /home/rocky002 rocky002
[root@rockylinux001 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

rocky001:x:1000:1000:rocky001:/home/rocky001:/bin/bash
rocky002:x:1001:1001::/home/rocky002:/bin/bash
↑ホームディレクトリが変更されまし

続いて実際のディレクトリ名を変更します。

[root@rockylinux001 ~]# mv /home/test002/ /home/rocky002/

ユーザーアカウントのパスワード変更方法

passwdコマンド

ユーザーアカウントのパスワードを変更するコマンドです
文法:
passwd [省略できるOP] [ユーザー名(省略可)]
※OP:オプションのことです。
コマンドの参考資料はこちら

オプションには次のようなものが利用されます。
「d」:パスワードを削除します。
「n」:パスワードが再度変更可能になるまでの日数を指定します。
「w」:パスワード失効前に警告を表示する日数を指定します。
「x」:パスワードが有効な日数を指定します。
「i」:パスワード有効期限超過後の利用猶予期間を指定します。
「S」:パスワードの状態を表示します。
「l」:ユーザーをロック(ログインできなく)します。
「u」:ユーザーのロックを解除します。
「–stdin」 新しいパスワードを標準入力から読み込みます。

ここでは、先ほど追加した「rocky002」ユーザーにパスワードを設定してみたいと思います。設定には「passwdコマンド」に続けてユーザー名を入力します。入力後、パスワードの設定が行えます。

今回は練習としてユーザー名と同じ文字列でパスワードを作成しているので警告が表示されます。実際は推測されないもので作成します。

[root@rockylinux001 ~]# passwd rocky002
ユーザー rocky002 のパスワードを変更。
新しい パスワード: ←ここでは「rocky002」としています。
正しくないパスワード: このパスワードには、一部に何らかの形でユーザー名が含まれています
新しい パスワードを再入力してください: ←再度「rocky002」と入力します。
passwd: すべての認証トークンが正しく更新できました。

実際に利用でききるかCockpitからログインしてみます。

ログインが行えました。

ユーザーアカウントの削除方法

userdelコマンド

ユーザーアカウントを削除するコマンドです
文法:
userdel [省略できるOP] [ユーザー名]
※OP:オプションのことです。
コマンドの参考資料はこちら

オプションには次のようなものが利用されます。
「r」:ユーザーアカウントのホームディレクトリなども同時に削除します。

新しいユーザー「test003」を作成した後に、このユーザーを削除してみたいと思います。

[root@rockylinux001 ~]# useradd test003 -c ‘new account for deletion’
[root@rockylinux001 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin



rocky001:x:1000:1000:rocky001:/home/rocky001:/bin/bash
rocky002:x:1001:1001::/home/rocky002:/bin/bash

test003:x:1002:1002:new account for deletion:/home/test003:/bin/bash
↑ユーザーが追加されました。

userdelコマンドを利用してユーザーを削除します。

[root@rockylinux001 ~]# userdel -r test003
[root@rockylinux001 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

rocky001:x:1000:1000:rocky001:/home/rocky001:/bin/bash
rocky002:x:1001:1001::/home/rocky002:/bin/bash

(表示なし)
ユーザーが削除されました。
[root@rockylinux001 ~]#

wheelグループに属するユーザーのみroot権限を利用できる設定

Linuxでは「限定したユーザー」にのみ「root権限」を利用できるよう設定をするのが好ましいです。これには基本的に「wheelグループ」というグループを利用します。「wheelグループ」に所属することでユーザーは管理ユーザーに切り替えることができます。管理ユーザーをwheelグループに限定するには「/etc/pam.d/suファイル」を編集する必要があります。

[rocky001@rockylinux001 ~]$ su –
Password:

次のコマンドで「rocky001ユーザー」を「wheelグループ」に所属させてオプション「a」を利用して「wheelグループ」を「サブグループ」としています。
[root@rockylinux001 ~]# usermod -aG wheel rocky001

続けて「/etc/pam.d/suファイル」を確認します。

[root@rockylinux001 ~]# cat /etc/pam.d/su
#%PAM-1.0
auth required pam_env.so
auth sufficient pam_rootok.so
#Uncomment the following line to implicitly trust users in the “wheel” group.
#auth sufficient pam_wheel.so trust use_uid
#Uncomment the following line to require a user to be in the “wheel” group.
#auth required pam_wheel.so use_uid ←ここの「#」を削除します。
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so

「/etc/pam.d/suファイル」の編集をします。

[root@rockylinux001 ~]# vi /etc/pam.d/su
#%PAM-1.0
auth required pam_env.so
auth sufficient pam_rootok.so
#Uncomment the following line to implicitly trust users in the “wheel” group.
#auth sufficient pam_wheel.so trust use_uid
#Uncomment the following line to require a user to be in the “wheel” group.
auth required pam_wheel.so use_uid ←変更後です。
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so

rocky001ユーザーからrootユーザーに切り替えてみます。wheelグループに属しているのでrootユーザーに切り替えに成功しています。

rocky002ユーザーからrootユーザーに切り替えてみます。wheelグループに属していないのでrootユーザーに切り替えに失敗しています。

今回は以上になります。

「Linux」おすすめ書籍6選【初心者・脱初心者用】| 現役エンジニア&プログラミングスクール講師「Linux」初心者の方がLinuxの操作や仕組みを理解するためのお勧めの書籍について取り上げています。また中級者として更に進んだ学習ができる書籍についても1冊取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
09-Linux & Virtual Box

Virtual Box & Linux(Part.2)| Rocky Linuxのインストール | 現役エンジニア&プログラミングスクール講師

2023年4月20日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux| まとめ | 現役エンジニア&プログラミングスクール講師

2023年5月9日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.13)| Linux ユーザー管理(1)| 現役エンジニア&プログラミングスクール講師

2023年5月1日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.3)| Linux管理ツール「Cockpit」の有効化 | 現役エンジニア&プログラミングスクール講師

2023年4月21日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.16)| Linux ファイル管理(1)| 現役エンジニア&プログラミングスクール講師

2023年5月8日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.11)| Linux テキスト処理(3)| 現役エンジニア&プログラミングスクール講師

2023年4月29日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site