RHELのマニュアルに書いている推奨されている内容で、ユーザーとグループの作成を行います。
予約されたユーザーIDとグループID
RHELでは「999」以下は、予約されたユーザーIDとグループIDとなっていて、かつ、今後も増えることを考えて、推奨は「5000」以降のIDを割り当てるとのことです。
Red Hat Customer Portal - Access to 24x7 support and knowledge
予約されたユーザーIDとグループIDを確認することができます。
$ cat /usr/share/doc/setup/uidgid
NAME UID GID HOME SHELL PACKAGES
root 0 0 /root /bin/bash setup
bin 1 1 /bin /sbin/nologin setup
daemon 2 2 /sbin /sbin/nologin setup
sys - 3 - - setup
adm 3 4 /var/adm /bin/bash setup
:(省略)
新規ユーザー作成時のデフォルトで付与されるIDを変更
新規ユーザーを作成するとき、デフォルトで「1000」からIDの自動付与がされますが、マニュアルの推奨に合わせて、「5000」からIDが自動付与するようにします。
$ /etc
$ sudo cp -a login.defs BK_login.defs.original
$ sudo vim login.defs
:(省略)
#
# Min/max values for automatic uid selection in useradd(8)
#
UID_MIN 5000 ・・・ 「1000」から「5000」に変更
:(省略)
#
# Min/max values for automatic gid selection in groupadd(8)
#
GID_MIN 5000 ・・・ 「1000」から「5000」に変更
:(省略)
$ diff BK_login.defs.original login.defs
144c144
< UID_MIN 1000
---
> UID_MIN 5000
157c157
< GID_MIN 1000
---
> GID_MIN 5000
動作確認
試しにUIDとGIDが5000以降で作成されるかの動作を確認します。
$ sudo useradd test
$ ls -ldn /home/test
drwx------. 3 5000 5000 78 Apr 13 20:41 /home/test ・・・ 「5000」から自動付与されている
$ sudo userdel -r test
$ ls -ldn /home/test
ls: cannot access '/home/test': No such file or directory
グループの作成
グループの作成時にオプションを指定しなければ、GIDは若い番号から自動付与されます。
$ sudo groupadd testgroup
$ cat /etc/group | grep testgroup
testgroup:x:5001:
グループの作成時に、GIDを指定する場合は、「-g (–gid)」オプションで指定します。
$ sudo groupadd -g 6000 tmpgroup
$ cat /etc/group | grep tmpgroup
tmpgroup:x:6000:
ユーザーの作成
ユーザーの作成時にオプションを指定しなければ、UIDは若い番号から自動付与され、かつ、グループは作成時のユーザー名でグループが作成されます。
ユーザー名と同じグループのことを「ユーザープライベートグループ(UPG)」といいます。
$ sudo useradd test1 ・・・ オプション無しで
$ cat /etc/group | grep test1 ・・・ 作成されたグループの確認
test1:x:5001:
$ cat /etc/passwd | grep test1 ・・・ 作成されたユーザーの確認
test1:x:5001:5001::/home/test1:/bin/bash
$ sudo cat /etc/shadow | grep test1 ・・・ パスワードは「/etc/shadow」
test1:!!:19826:0:99999:7::: ・・・ パスワードは設定されていないので「!!」
$ sudo passwd test1
Changing password for user test1.
New password:xxxxxxxx
Retype new password:xxxxxxxx
passwd: all authentication tokens updated successfully.
$ sudo cat /etc/shadow | grep test1 ・・・ パスワードは暗号化されている
test1:$6$u44gF(省略)aTMzKEp1:19826:0:99999:7:::