上一篇
Linux如何查看用户命令?
- Linux
- 2025-06-26
- 5
Linux系统显示用户账号主要有三种方法: ,1. 使用 whoami 命令查看当前登录用户名。 ,2. 使用 id 命令查看当前用户的 UID 和所属组信息。 ,3. 查看 /etc/passwd 文件(如 cat /etc/passwd)获取系统所有用户账号的完整列表。
查看 /etc/passwd 文件(最直接的方法)
命令:
cat /etc/passwd
输出示例:
root:x:0:0:root:/root:/bin/bash alice:x:1001:1001:Alice Smith:/home/alice:/bin/bash
字段解析(以冒号分隔的7列):
- 用户名:登录名称(如 alice)
- 密码占位符:x 表示密码存储在 /etc/shadow 中
- UID:用户ID(0为root,1000+为普通用户)
- GID:主组ID
- 描述:用户全名或备注
- 家目录:用户主路径
- 登录Shell:默认命令行解释器
适用场景:查看所有本地用户,需 sudo 权限读取敏感信息。

使用 getent 命令(支持网络用户)
命令:
getent passwd
优势:
- 同时显示本地用户和网络用户(如LDAP、NIS账户)
- 语法与 /etc/passwd 格式一致
过滤特定用户:
提取纯用户名列表
方法1:awk 处理输出
awk -F: '{print $1}' /etc/passwd
输出:
root alice bob
方法2:cut 命令
cut -d: -f1 /etc/passwd
专用工具 lslogins(详细信息展示)
命令:

sudo lslogins -u
输出示例:
USER UID PWD-LOCK PWD-DENY LAST-LOGIN GECOS alice 1001 0 0 Jun10 Alice Smith bob 1002 0 1 - Bob Brown
关键字段:
- PWD-LOCK:密码是否锁定
- PWD-DENY:是否禁止登录
- LAST-LOGIN:最后登录时间
Bash内置命令 compgen(仅当前Shell环境)
命令:
compgen -u
特点:
- 快速生成用户名列表
- 仅显示当前Shell可识别的用户
- 无需管理员权限
查看登录用户
- 当前登录用户: who # 显示已登录用户及终端 w # 显示用户及正在运行的进程
- 最后登录记录: lastlog # 所有用户最后登录时间
权限说明与安全建议
- 权限要求:
- 读取 /etc/passwd 无需root权限,但部分工具(如 lslogins)需 sudo。
- 敏感操作建议通过管理员账户执行。
- 安全提示:
- 禁用无用账户:sudo usermod -L username(锁定账户)
- 定期审计:检查 /etc/passwd 中异常UID(如0)或非法Shell(如 /bin/false)。
如何选择?
| 场景 | 推荐命令 |
|---|---|
| 查看完整用户信息 | cat /etc/passwd |
| 提取纯用户名 | awk -F: '{print $1}' /etc/passwd |
| 检查本地+网络用户 | getent passwd |
| 获取账户状态详情 | sudo lslogins -u |
引用说明基于Linux核心文档(man 5 passwd)及开源社区最佳实践,参考来源包括Linux man-pages项目和Ubuntu官方文档,所有命令已在Ubuntu 22.04/CentOS 7环境下验证,确保准确性。
