ユーザーとグループの管理

June 05, 2018

ユーザーアカウントと /etc/passwd

Linux ではユーザーアカウント情報は /etc/passwd ファイルに保存される。
以下のような書式になっている。

書式: user:x:502:502::/home/yuki:/bin/bash

user: ユーザー名
x: パスワード (現在ではシャドウパスワードが使用されているため、ここには x が入る)
502: UID (ユーザーを識別するための一意な ID。 root ユーザーは必ず 0)
502: GID (グループを識別するための一意な ID。/etc/group ファイルで GID とグループ名の対応が記述されている)
/home/yuki: ホームディレクトリ
/bin/bash: デフォルトシェルの絶対パス

/etc/shadow に暗号化されたパスワードが保存されており、このファイルは root ユーザーでしか読み取りができないことにより、セキュリティが担保されている。

グループアカウントと /etc/group

グループの設定は /etc/group ファイルに保存されている。
以下のような書式になっている。

書式: wheel:x:10:ec2-user

wheel: グループ名
x: グループメンバー用のパスワード
10: GID
ec2-user: グループメンバー

コマンドを用いたユーザーとグループの管理

useradd

-c でコメント、-d でホームディレクトリパス、-g 、-G でグループ、-s でデフォルトシェルを指定する。

$ sudo useradd -c "Linux User" -d /home/linux -s /bin/bash linuxuser  

なお、ホームディレクトリのデフォルトファイルは /etc/skel ディレクトリに雛形を配置することが可能。

$ ls -lA /etc/skel/  
total 16  
-rw-r--r-- 1 root root  18  830  2017 .bash_logout  
-rw-r--r-- 1 root root 193  830  2017 .bash_profile  
-rw-r--r-- 1 root root 124  830  2017 .bashrc  
-rw-r--r-- 1 root root 334 1012  2017 .emacs  

usermod

既存ユーザーアカウントを変更する。useradd コマンドのオプションとほぼ共通。-L でパスワードをロックし、-U でパスワードロックを解除。

$ sudo usermod -L linuxuser  

userdel

ユーザーアカウントの削除。-r でホームディレクトリも削除する。

$ sudo userdel -r linuxuser  
$ ls /home/  
ec2-user  quota  tetsu  tomo  yuki  

passwd

パスワードを変更する。また、-l でユーザーアカウントをロックすることも可能。

groupadd

グループを作成する。

$ sudo groupadd hoge  

groupmod

既存グループの情報を変更する。-g で GID を変更し、-n でグループ名を変更する。

groupdel

グループを削除する。削除対象グループをプライマリグループとするユーザーがいる場合は削除ができない。

id

ユーザーが所属するグループを調べることができる。

$ id ec2-user  
uid=500(ec2-user) gid=500(ec2-user) groups=500(ec2-user),10(wheel)  

 © 2023, Dealing with Ambiguity