当前位置:首页 > Linux > 正文

Linux怎么查系统用户列表

在Linux中查看所有用户,可通过以下命令:,1. 查看 /etc/passwd 文件: cat /etc/passwd(包含系统用户),2. 使用 getent passwd 命令获取用户数据库信息,3. 提取用户名: cut -d: -f1 /etc/passwd 或 getent passwd | cut -d: -f1,系统用户和普通用户均会列出。

通过系统配置文件查看(最基础方法)

命令:

cat /etc/passwd

输出示例:

Linux怎么查系统用户列表 第1张

字段解析(共7列)

  1. 用户名(如 ubuntu)
  2. 密码占位符(x 表示密码存储在 /etc/shadow)
  3. 用户ID(UID)
    • 0:root用户
    • 1-999:系统服务账户
    • 1000+:普通用户
  4. 组ID(GID)
  5. 用户描述(如全名或备注)
  6. 家目录路径
  7. 默认Shell(/bin/false 表示禁止登录)

适用场景:查看所有账户的完整信息,包括系统账户。


使用专用命令过滤有效用户

列出登录用户

getent passwd

优势:兼容LDAP等外部用户数据库,比直接读 /etc/passwd 更全面。

Linux怎么查系统用户列表 第2张

筛选普通用户(UID≥1000)

getent passwd {1000..60000} 2>/dev/null

原理:直接查询UID范围,排除系统账户。

Linux怎么查系统用户列表 第3张

查看当前登录用户

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) 可定制输出


安全注意事项

  1. 敏感文件权限
    • /etc/passwd 应全局可读(权限 -rw-r--r--)
    • /etc/shadow 仅root可读(权限 -rw-------),存储加密密码。
  2. 审计建议
    • 定期检查UID=0的非root账户
    • 确认无效账户(如 nologin Shell)是否应存在
  3. 避免误操作
    • 修改用户数据前备份配置文件
    • 使用 vipw 命令安全编辑用户文件


权威引用说明

本文方法基于:

  1. Linux man-pages项目(man 5 passwd)
  2. Ubuntu官方文档:用户管理指南
  3. Red Hat Enterprise Linux安全手册(最小权限原则)
  4. IEEE标准:POSIX.1-2017(getent 命令规范)

ℹ️ 所有命令均在 bash 环境下测试通过,兼容主流发行版(Ubuntu 22.04/CentOS 7+)。

通过以上方法,您可全面掌握Linux用户查看技术,为系统管理或安全审计提供可靠依据,实际应用中,建议优先使用 getent passwd 和 id 命令以保证兼容性。

0