查看linux系统所有用户账户应读取/etc/passwd文件:每行代表一个用户,用冒号分隔7个字段,第1段为用户名,第3段uid可区分系统用户(0–999)与普通用户(≥1000);命令如cut -d: -f1 /etc/passwd或getent passwd | awk -f: '$7 !~ /(nologin|false)$/{print $1}'可分别列出全部用户或仅可登录用户。

要查看 Linux 系统中所有用户账户(即系统上创建的全部用户,不管是否在线),关键不是查登录状态,而是读取用户数据库文件。最直接、最标准的方法是查看 /etc/passwd 文件。
看所有用户账户:/etc/passwd 是主入口
该文件每行代表一个用户,字段用冒号 : 分隔,共 7 个字段。前三个字段最关键:
-
第1段:用户名(如
root、alice) - 第3段:UID(用户 ID,0 是 root,1–999 通常是系统用户,1000+ 多为普通用户)
- 第4段:GID(主组 ID)
执行以下任一命令即可列出全部用户名:
cut -d: -f1 /etc/passwdawk -F: '{print $1}' /etc/passwd-
getent passwd | cut -d: -f1(兼容 LDAP/NIS 等外部用户源)
区分真实用户和系统用户
并非所有行都对应“可登录的人”。通常:
- UID ≥ 1000 的用户多为人工创建的普通用户(具体起始值因发行版而异,Ubuntu 从 1000,CentOS/RHEL 从 1000 或 500)
- UID 0–999 大多是服务账户(如
daemon、sshd、mysql),默认禁止交互式登录(其 shell 常为/sbin/nologin或/bin/false)
若只想看“可能登录的用户”,可过滤掉无权登录的条目:
getent passwd | awk -F: '$7 !~ /(nologin|false)$/{print $1}'
补充查看方式:密码与权限细节
/etc/passwd 不存真实密码,只放占位符 x;完整密码策略和过期信息在 /etc/shadow(需 root 权限):
-
sudo cat /etc/shadow—— 查看密码状态、过期时间、锁定标记等 -
lslogins—— 更友好的汇总视图,含 UID、最后登录时间、是否被锁等(部分系统需安装util-linux)
注意:别混淆“所有用户”和“当前登录用户”
像 who、w、users 这些命令只反映此刻正在登录的会话,不是系统全部用户。例如一个用户已登出,但账户仍存在于 /etc/passwd 中——它依然算“系统上的用户”,只是不在线。











