Linux如何快速查看用户
- Linux
- 2025-06-07
- 4558
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文件),请遵守相关法律法规。