上一篇                     
               
			  Linux怎么查系统用户列表
- Linux
- 2025-06-21
- 3626
 在Linux中查看所有用户,可通过以下命令:,1. 查看 
 
 
/etc/passwd 文件:
 cat /etc/passwd(包含系统用户),2. 使用 
 getent passwd 命令获取用户数据库信息,3. 提取用户名:
 cut -d: -f1 /etc/passwd 或 
 getent passwd | cut -d: -f1,系统用户和普通用户均会列出。
通过系统配置文件查看(最基础方法)
命令:
cat /etc/passwd
输出示例:
root:x:0:0:root:/root:/bin/bash ubuntu:x:1000:1000:Ubuntu User:/home/ubuntu:/bin/bash mysql:x:113:118:MySQL Server,,,:/nonexistent:/bin/false
字段解析(共7列):

- 用户名(如 ubuntu)
- 密码占位符(x表示密码存储在/etc/shadow)
- 用户ID(UID): 
  - 0:root用户
- 1-999:系统服务账户
- 1000+:普通用户
 
- 组ID(GID)
- 用户描述(如全名或备注)
- 家目录路径
- 默认Shell(/bin/false表示禁止登录)
适用场景:查看所有账户的完整信息,包括系统账户。
使用专用命令过滤有效用户
列出登录用户
getent passwd
优势:兼容LDAP等外部用户数据库,比直接读 /etc/passwd 更全面。
筛选普通用户(UID≥1000)
getent passwd {1000..60000} 2>/dev/null 
原理:直接查询UID范围,排除系统账户。

查看当前登录用户
who # 显示已登录用户及终端信息 w # 显示更详细的登录用户和操作 users # 仅显示登录用户名(去重)
高级工具与技巧
使用 awk 提取关键信息
 
awk -F: '{print $1, $3}' /etc/passwd  # 只输出用户名和UID 
输出示例:
root 0
ubuntu 1000检查用户组关系
groups [用户名] # 查看指定用户所属组 id [用户名] # 显示用户UID、GID及附属组
查看特权用户
grep ':0:' /etc/passwd # 查找UID=0的用户(除root外可能有隐藏管理员)
方法对比与选择建议
| 方法 | 适用场景 | 优势 | 
|---|---|---|
| cat /etc/passwd | 查看所有用户原始数据 | 信息最全面 | 
| getent passwd | 企业级环境(含LDAP) | 兼容外部认证系统 | 
| who/w | 监控实时登录用户 | 实时性强 | 
| awk过滤 | 提取特定字段(如用户名、UID) | 可定制输出 | 
安全注意事项
- 敏感文件权限: 
  - /etc/passwd应全局可读(权限- -rw-r--r--)
- /etc/shadow仅root可读(权限- -rw-------),存储加密密码。
 
- 审计建议: 
  - 定期检查UID=0的非root账户
- 确认无效账户(如 nologinShell)是否应存在
 
- 避免误操作: 
  - 修改用户数据前备份配置文件
- 使用 vipw命令安全编辑用户文件
 
权威引用说明
本文方法基于:
- Linux man-pages项目(man 5 passwd)
- Ubuntu官方文档:用户管理指南
- Red Hat Enterprise Linux安全手册(最小权限原则)
- IEEE标准:POSIX.1-2017(getent命令规范)
ℹ️ 所有命令均在
bash环境下测试通过,兼容主流发行版(Ubuntu 22.04/CentOS 7+)。
通过以上方法,您可全面掌握Linux用户查看技术,为系统管理或安全审计提供可靠依据,实际应用中,建议优先使用 getent passwd 和 id 命令以保证兼容性。
 
 
 
			 
			 
			 
			 
			 
			 
			