直接查 /etc/passwd 中 uid 小于 1000 的条目可列出系统内置账号,awk -f: '$3
直接查
/etc/passwd中 UID 小于 1000 的条目,就能列出系统内置账号。这类账号通常不用于人工登录,而是为服务、守护进程或系统功能所设。用 awk 筛选并显示用户名和 UID
这是最常用、最清晰的方式:
awk -F: '$3- 输出示例:
root UID:0、daemon UID:1、sys UID:3、sync UID:4- 加个排序更易读:
awk -F: '$3用 getent 命令(兼容 LDAP/NIS 环境)
当系统接入了集中认证(如 LDAP),
getent比直接读/etc/passwd更全面:
getent passwd | awk -F: '$3- 它会同时拉取本地 + 网络数据库中的系统账号,适合混合环境
- 若只关心本地账号,仍推荐用
/etc/passwd方式,避免误含远程系统账号补充判断:排除 root,只看“纯系统用户”
UID 0 是 root,属于超级用户;真正意义的“系统内置账号”一般指 UID 1–999:
awk -F: '$3 >= 1 && $3- 这样能跳过 root,聚焦在
daemon、sys、www-data、mysql等典型服务账户- 注意:部分发行版(如 RHEL/CentOS)可能把某些服务账号 UID 设为 999 或更低,但仍在该范围内
快速验证某个账号是否属系统用户
遇到不确定的用户名(比如
sshd、polkitd),可单查其 UID:
id -u sshd或getent passwd sshd | cut -d: -f3- 再结合
getent passwd sshd | cut -d: -f7查 shell —— 若是/usr/sbin/nologin或/bin/false,基本可确认是系统账号












