Linux 下的 /etc/passwd 档案储存了系统帐号的资讯, 其中也包括帐号的使用者名称, 而 /etc/passwd 没有包括密码在里面, 没有 root 权限也可以读取。要列出所有系统帐号, 只要用 cat, more,less 等指令, 便可以列出帐号:
$ 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
…
…
…
上面输出的第一个字段就是帐号的使用者名称, 如果想只输出第一个字段, 让列出的帐号使用者名称可读性更强, 可以用 awk 以 “:” 字符分隔:
$ awk -F’:’ ‘{ print $1}’ /etc/passwd
以上用 awk 指令输出的内容, 只会列出帐号的使用者名称, 类似这样:
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
sshd
postfix
named
nginx
除了用 awk 外, 也可以用 cut 指令, 会得出相同的结果:
$ cut -d: -f1 /etc/passwd
以上指在 Linux 列出系统帐号的方法。