最直接有效的方式是读取/etc/passwd文件;可用cut -d: -f1 /etc/passwd快速列出全部用户名,awk -F: '$3>=1000{print $1}'筛选普通用户,lslogins -u或getent passwd查看完整详情。

最直接有效的方式是读取 /etc/passwd 文件,它记录了系统中所有用户的基本信息(包括系统用户和普通用户),无需特殊权限即可查看。
一、快速列出全部用户名
只需提取每行第一个字段(用户名):
- cut -d: -f1 /etc/passwd —— 显示所有用户名,最常用
- compgen -u —— Bash 内置命令,速度快,结果与上条基本一致
- getent passwd | cut -d: -f1 —— 兼容 LDAP/NIS 等网络用户,适合企业环境
二、区分普通用户和系统用户
Linux 中 UID 是关键判断依据:root 用户 UID=0,系统用户通常 UID 1–999,普通用户一般从 UID 1000 起(不同发行版可能略有差异)。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 只看普通用户(推荐日常使用):awk -F: '$3 >= 1000 {print $1}' /etc/passwd
- 排除不可登录账户(如
/sbin/nologin或/bin/false):awk -F: '$3 >= 1000 && $7 !~ /nologin|false/ {print $1}' /etc/passwd
三、查看更完整的用户详情
不只看名字,还想了解 UID、主目录、Shell 等?
- cat /etc/passwd —— 原始全量信息,7 字段用冒号分隔
-
lslogins -u —— 自动过滤系统账户,默认只显示可登录用户,支持自定义列(如
lslogins -u -o USER,UID,SHELL) -
getent passwd —— 输出格式同
/etc/passwd,但能覆盖网络用户源,权威性更高
四、补充说明
/etc/passwd 不存密码(密码哈希在 /etc/shadow,仅 root 可读);finger 命令可查用户真实姓名、登录状态等附加信息,但需单独安装且默认不启用;who、w、users 这类命令只显示当前已登录的用户,不是“系统所有用户”。










