上一篇                     
               
			  Linux如何查看用户命令?
- Linux
- 2025-06-26
- 2478
 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格式一致
过滤特定用户:
getent passwd alice # 仅显示用户alice的信息
提取纯用户名列表
方法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环境下验证,确保准确性。
 
  
			 
			 
			 
			 
			 
			 
			 
			