Linux如何快速查看用户
- Linux
- 2025-06-07
- 4110
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:用户ID
- gid:主组ID
- groups:用户所属的所有组
查看用户所属组
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文件),请遵守相关法律法规。
 
  
			 
			 
			 
			 
			 
			 
			 
			