cat /etc/passwd:显示所有用户信息,2.
getent passwd:获取用户数据库条目,3.
compgen -u(仅bash):列出所有用户名,4.
lslogins -u:显示已登录用户详情
在Linux系统中,用户管理是系统管理员的核心任务之一,无论是排查安全问题、分配资源还是维护系统,查看用户信息都是关键步骤,本文详细介绍多种查看用户的方法,涵盖所有用户列表、当前登录用户、用户详细信息等场景,并提供实用技巧。
查看所有用户列表
解析 /etc/passwd 文件(最基础方法)
cat /etc/passwd
输出示例:root:x:0:0:root:/root:/bin/bash
字段解析(以冒号分隔):
| 字段序号 | 含义 | 说明 |
|———-|—————|————————–|
| 1 | 用户名 | 用户登录名称 |
| 2 | 密码占位符 | x 表示密码存储在 /etc/shadow |
| 3 | 用户ID(UID) | 0 表示root用户 |
| 4 | 组ID(GID) | 主用户组ID |
| 5 | 描述信息 | 用户全名或注释 |
| 6 | 家目录路径 | 用户个人文件夹位置 |
| 7 | 默认Shell | 登录时使用的Shell程序 |
过滤有效用户(排除系统服务账号):
awk -F: '$3 >= 1000 && $3 < 65534 {print $1}' /etc/passwd
使用 getent 命令(兼容LDAP/NIS)
getent passwd
优势:

- 自动整合本地用户和网络账户服务(如LDAP)
- 输出格式与
/etc/passwd一致
查看当前登录用户
who 命令(最常用)
who
输出示例:ubuntu pts/0 2025-07-20 09:30 (192.168.1.5)
字段含义:
- 用户名:登录账户名
- 终端类型:
tty(物理终端)/pts(虚拟终端) - 登录时间:精确到秒
- 来源IP:远程登录时显示客户端IP
w 命令(带活动进程)
w
输出示例:
10:15:03 up 5 days, 2:30, 2 users, load average: 0.08, 0.03, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ubuntu pts/0 192.168.1.5 09:30 5.00s 0.02s 0.00s sshd: ubuntu [priv]
关键列:

WHAT:用户当前运行的命令IDLE:用户空闲时间FROM:登录来源IP
其他实时监控命令
| 命令 | 功能 | 示例输出 |
|---|---|---|
users |
显示已登录用户名 | ubuntu root |
last |
查看历史登录记录 | ubuntu pts/0 192.168.1.5 Fri Jul 20 09:30 still logged in |
finger |
显示用户详细信息(需安装) | Login: ubuntu Name: Ubuntu User |
查看单个用户详细信息
id 命令(核心工具)
id username # 替换username为目标用户
输出示例:uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),27(sudo)
关键信息:
uid:用户IDgid:主组IDgroups:用户所属的所有组
查看用户所属组
groups username # 或使用 id -Gn username
示例:ubuntu : ubuntu adm sudo docker

高级技巧与注意事项
▸ 场景1:检查用户是否存在
grep -E "^username:" /etc/passwd # 返回结果即存在
▸ 场景2:查看用户密码策略
sudo chage -l username
输出密码过期信息:
Last password change : Jun 15, 2025
Password expires : Sep 13, 2025
Password inactive : never
Account expires : never
▸ 场景3:审计用户权限
sudo -l -U username # 查看该用户可执行的sudo命令
️ 注意事项:
- 权限要求:
- 查看
/etc/passwd无需root权限 - 查看
/etc/shadow(密码哈希)需sudo权限
- 查看
- 系统用户 vs 普通用户:
- UID范围
0-999通常为系统服务账号(如www-data) - 普通用户UID从
1000开始
- UID范围
- 环境差异:
- Ubuntu/CentOS等主流发行版命令通用
- 旧版系统(如Solaris)需使用
logins命令
方法总结速查表
| 需求场景 | 推荐命令 | 特点 |
|---|---|---|
| 列出所有用户 | getent passwd |
兼容网络账户,信息完整 |
| 查看实时登录用户 | w |
显示活动进程和资源占用 |
| 检查用户属性 | id username |
快速获取UID/GID/组信息 |
| 历史登录记录 | last |
审计安全事件,含登录IP和时间 |
| 用户权限审计 | sudo -l -U user |
查看sudo授权命令 |
引用说明: 参考Linux官方文档(man7.org)及Unix/Linux系统管理权威指南《Linux Administration Handbook》,所有命令已在Ubuntu 22.04 LTS和CentOS 7环境中验证,确保可靠性,对于涉及用户隐私的操作(如查看shadow文件),请遵守相关法律法规。
