ユーザーアカウントと /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 8月 30 2017 .bash_logout
-rw-r--r-- 1 root root 193 8月 30 2017 .bash_profile
-rw-r--r-- 1 root root 124 8月 30 2017 .bashrc
-rw-r--r-- 1 root root 334 10月 12 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)