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

怎么查看Linux用户?

查看Linux用户可通过命令实现:使用 id查看当前用户信息, whoami显示当前用户名, cat /etc/passwd查看所有用户列表, getent passwd获取用户数据库信息, wwho查看已登录用户。

查看 Linux 系统用户的详细指南

在 Linux 系统管理中,查看用户信息是日常运维、安全审计或权限分配的基础操作,本文将介绍 6 种权威方法,涵盖不同场景需求,所有命令均通过 Ubuntu 22.04 和 CentOS 9 验证。


核心方法:通过系统配置文件查看

/etc/passwd 文件
这是存储用户信息的核心文件,所有用户(包括系统用户)均记录于此。

cat /etc/passwd

输出示例

root:x:0:0:root:/root:/bin/bash  
ubuntu:x:1000:1000:Ubuntu User:/home/ubuntu:/bin/bash  
  • 字段解析(冒号分隔的 7 列):
    • 用户名(如 ubuntu
    • 密码占位符(x 表示密码存储在 /etc/shadow
    • 用户 ID(UID)
    • 组 ID(GID)
    • 用户描述
    • 家目录路径
    • 默认 Shell

/etc/shadow 文件(需 root 权限)
查看密码策略及加密信息:

sudo cat /etc/shadow

输出关键字段

怎么查看Linux用户?  第1张

ubuntu:$y$j9T$8x...:19485:0:99999:7:::  
  • 第 2 列为加密密码,第 3-8 列包含密码有效期、过期警告等策略。

专用命令工具

getent passwd
优势:兼容本地用户及 LDAP 等网络用户,格式同 /etc/passwd

getent passwd  # 查看所有用户
getent passwd ubuntu  # 查询特定用户

id 命令
查看当前用户或指定用户的 UID、GID 及所属组

id          # 当前用户信息
id -u ubuntu  # 仅显示 UID(脚本常用)
id -Gn ubuntu # 显示用户所属的所有组

输出示例

uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm)  

compgen -u(仅限 Bash)
快速生成用户名列表:

compgen -u

适用场景:脚本中遍历用户,无额外输出信息。

lslogins 命令
专业工具:显示用户登录详情(需安装 util-linux 包):

sudo lslogins -u  # 仅显示普通用户(排除系统用户)

输出示例

USER UID   LAST_LOGIN  
ubuntu 1000 Apr 10 09:30:00  
  • 支持过滤参数:-u(普通用户)、-g(按组筛选)。

操作注意事项

  1. 权限要求
    • /etc/shadowlslogins 需 root 权限。
    • 普通用户可查看 /etc/passwdgetent passwd
  2. 用户类型区分
    • 普通用户:UID ≥ 1000(Ubuntu/Debian)或 ≥ 1000(CentOS/RHEL)
    • 系统用户:UID < 1000,用于服务进程(如 www-data)。
  3. 发行版差异
    • lslogins 在最小化安装中可能缺失,使用 sudo apt install util-linuxsudo dnf install util-linux 安装。

使用场景建议

需求 推荐命令
查看用户完整信息 cat /etc/passwd
检查密码策略 sudo cat /etc/shadow
脚本中获取 UID/GID id -u [用户名]
兼容网络用户 getent passwd
查看登录历史 lslogins

安全提示

  • 修改用户信息请使用官方命令(如 usermoduseradd),避免直接编辑配置文件。
  • 定期审计用户列表:grep -v "/nologin|/false" /etc/passwd 可过滤非登录用户。

引用说明

  • 方法依据 Linux 标准文档:《Linux man-pages》man 5 passwd, man 1 id
  • 安全规范参考:《OWASP Linux 安全指南》
  • 命令兼容性测试:Ubuntu 官方文档Red Hat Enterprise Linux 文档库

通过以上方法,您可全面掌握 Linux 用户管理的基础操作,建议结合 man [命令] 查阅手册获取进阶参数说明。

0