Linuxサーバーでユーザーを一覧表示したいと思った事はないでしょうか?
サーバー管理者でユーザー管理する事は大切な業務の一つです。
その中でLinuxサーバーでユーザー一覧を表示して確認するにはコマンドを使用するのが一番です。
Linuxサーバーでユーザー一覧をコマンドで表示するやり方を、現役エンジニアの筆者が教えます。
筆者はWindowsサーバーやLinuxサーバーの運用構築を11年以上おこなってきました。その経験を元に知識を公開していきます!
Linuxのユーザー一覧をコマンドで表示し確認する方法
Linuxサーバーでユーザーを作成すると「etc/passwd」のファイルに追記されます。このファイルを参照する事でユーザー一覧を表示し、確認する事が可能です。
[root@localhost ~]# 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:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ftp-user:x:1000:1000::/home/ftp-user:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
mailman:x:41:41:GNU Mailing List Manager:/usr/lib/mailman:/sbin/nologin
ftpuser:x:1001:1001::/home/ftpuser:/bin/bash
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
rdpuser:x:1002:1002::/home/rdpuser:/bin/bash
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
colord:x:998:995:User for colord:/var/lib/colord:/sbin/nologin
geoclue:x:997:994:User for geoclue:/var/lib/geoclue:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
testuser1:x:1003:1003::/home/testuser1:/bin/bash
testuser2:x:1004:1004::/home/testuser2:/bin/bash
ファイルの中身は「:」で区切られています。それぞれの意味は以下にまとめます。
ユーザー名:パスワード:ユーザーID:グループID:コメント:ホームディレクトリ:シェルの場所
ユーザー名一覧のみを抽出する方法
ユーザー名一覧のみを提出したい場合もあるかと思います。ユーザー名は1項目目にあるのでそこだけを抽出すれば効率化できます。
cut -d 区切り文字 -f 項目番号 /etc/passwd
cutコマンドを使用します。dオプションは区切り文字を指定します。fオプションは項目番号を指定します。
今回は区切り文字は「:」で1項目目のユーザー名一覧が欲しいので1を指定します。
cut -d : -f 1 /etc/passwd
Linuxのcutコマンドを実行します。
[root@localhost ~]# cut -d : -f 1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
sshd
postfix
ftp-user
apache
mailman
ftpuser
tss
rdpuser
rtkit
colord
geoclue
pulse
gdm
mysql
testuser1
testuser2
1項目目のユーザー名一覧が表示されました。
特定のユーザーのみ表示する方法
特定のユーザーのみを表示する場合はgrepで検索します。
cat /etc/passwd | grep 表示したいユーザー名
ユーザー一覧表示させて、パイプでつなぎ、grepコマンドで抽出します。
[root@localhost ~]# cat /etc/passwd | grep testuser1
testuser1:x:1003:1003::/home/testuser1:/bin/bash
指定したユーザーのみ表示されています。
現在ログインしているユーザーを表示する方法
現在ログインしているユーザーを確認するコマンドは2つあります。
- whoコマンド
- usersコマンド
[root@localhost ~]# who
root pts/0 2024-05-12 15:26 (192.168.0.11)
testuser1 pts/1 2024-05-12 16:23 (192.168.0.11)
whoコマンドでは現在ログインしているユーザーとログインした日時やIPアドレスなどが表示されています。
[root@localhost ~]# users
root testuser1
usersコマンドではログインしているユーザー名のみが表示されています。
Linuxサーバーでユーザー管理に関するその他の記事について
ユーザー作成する方法について
ユーザー削除する方法について
ユーザー名変更する方法について
ユーザーのパスワード管理について