LinuxのユーザーID、グループIDの最大値・最小値を確認する方法
目次
スポンサードリンク
Linuxのユーザーはそれぞれ、ユーザーID、グループIDを持っています。 シェルスクリプトなどで、Linuxユーザーを追加するプログラムを組む場合、現在登録されているユーザーの内、最大のユーザーIDを知りたいことがあります。
ユーザーIDは /etc/passwd ファイルに記録されています。 以下のコマンドで確認することができます。
[root@hostname ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
1行が1ユーザーに対応しており、:(コロン)で区切られた以下7つのフィールドで構成されています。
- ユーザー名: ログイン時に使用する名前
- パスワード: 暗号化されたパスワード (シャドウパスワードは “x”)
- UID: ユーザーID (0 から始まり、ユーザーごとに割り当てられる)
- GID: グループID (所属するグループを表す)
- ユーザー情報: 補足情報 (住所、電話番号など)
- ホームディレクトリ: ホームディレクトリのパス
- デフォルトシェル: ログイン時に使用するデフォルトのシェル
ユーザーIDの最大値を確認するコマンド
[root@hostname ~]# cat /etc/passwd | awk -F : '{print $3}' | sort -rn | head
65534
30612
30610
30609
30608
cat コマンドで /etc/passwd の内容を標準出力してパイプで awk コマンドにつなぎます。awk コマンドでは -F オプションで 区切り文字を コロン として、3列目のデータを取り出しています。
さらに、sort コマンドで降順にソートし、headコマンドで先頭行を取り出します。
結果を見ると、1行目には、nobodyユーザーのユーザーID「65534」があります。nobodyユーザーはデフォルトで存在することが大半のため、Linuxを利用するユーザーとしては「30612」のユーザーIDが最大ということになります。sortコマンドのオプションを -n だけにすれば最小値を確認できます。
Linuxコマンドについて学べるおすすめ書籍
リンク
Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】
Search
Recent Posts
- カーネル更新やパッケージのパッチ適用後、OSの再起動が必要か確認するLinuxコマンド(needs-restarting)
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法