在 Linux 系统管理中,用户管理是一项基础且重要的工作,无论是系统运维、安全审计还是日常维护,经常需要查看系统中的用户信息,本文将详细介绍在 Linux 系统中查看用户的各种方法,涵盖命令行工具、配置文件解析以及相关高级技巧,帮助读者全面掌握用户信息查看的技能。

基础命令查看用户信息
Linux 提供了多个简单直接的命令,可以快速获取当前系统的用户列表及基本信息,这些命令适合日常快速查询,操作简单且高效。
users 命令:显示当前登录用户
users 是最简单的查看用户命令,它会输出当前登录系统的所有用户名称,重复登录的用户会显示多次。
users
输出可能为 alice bob alice,表示用户 alice 登录了两次,bob 登录了一次,该命令不提供额外信息,仅用于快速了解当前在线用户。
who 命令:显示登录用户详细信息
who 命令比 users 更详细,它会列出当前登录用户的用户名、终端设备、登录时间和远程主机地址。
who
输出示例:
alice pts/0 2023-10-01 10:30 (192.168.1.100)
bob pts/1 2023-10-01 11:15 (192.168.1.101)
pts/0 表示虚拟终端,168.1.100 是用户登录的远程 IP 地址,通过 who am i 可以查看当前会话的详细信息。
w 命令:显示用户活动及系统负载
w 命令整合了 who 的功能,并增加了用户当前执行的进程、系统负载等信息。
w
输出会包含当前时间、系统运行时间、登录用户数、负载平均值,以及每个用户的用户名、终端、登录时间、空闲时间和当前执行的命令。
10:35:01 up 10 days, 2:30, 2 users, load average: 0.05, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
alice pts/0 192.168.1.100 10:30 1:00 0.05s 0.05s bash
bob pts/1 192.168.1.101 11:15 0.00s 0.02s 0.01s w
w 命令适合监控系统当前用户活动状态。
查看系统用户账户
除了当前登录用户,管理员还需要查看系统中所有已创建的用户账户,这些信息通常存储在 /etc/passwd 文件中。
/etc/passwd 文件结构
/etc/passwd 是 Linux 系统的核心用户配置文件,每一行代表一个用户,用冒号 分为 7 个字段:

- 用户名:用户的登录名称。
- 密码占位符:早期这里存储加密密码,现代 Linux 系统中(如 Ubuntu、CentOS)密码已移至
/etc/shadow文件,此处显示为x。 - 用户 ID(UID):唯一标识用户的数字,
0表示 root 用户,1-999为系统用户,1000+为普通用户。 - 组 ID(GID):用户所属主组的 ID。
- 用户描述信息(GECOS):可选字段,可存储用户全名、联系方式等,如
Alice Smith,123-456-7890。 - 家目录:用户登录后的默认工作目录,如
/home/alice。 - 登录 Shell:用户默认使用的 Shell,如
/bin/bash,/sbin/nologin表示禁止登录。
查看 /etc/passwd 文件
可以直接使用 cat、less 或 more 命令查看文件内容:
less /etc/passwd
过滤特定用户:
grep "alice" /etc/passwd
输出示例:
alice:x:1000:1000:Alice Smith:/home/alice:/bin/bash
查看用户密码与权限信息
密码和权限是用户管理的核心安全内容,Linux 将相关信息存储在 /etc/shadow 和 /etc/group 文件中。
/etc/shadow 文件:密码与账户状态
/etc/shadow 文件只有 root 可读,存储用户的加密密码和账户管理信息,每行对应 /etc/passwd 中的一个用户,字段用冒号 分隔:
- 用户名:与
/etc/passwd一致。 - 加密密码:如果为空,表示用户无密码(如禁用账户);如果为 或 ,表示密码被锁定;
$id$salt$encrypted是加密后的密码(id为加密算法,如1表示 MD5,6表示 SHA-512)。 - 上次修改密码日期:从 1970-01-01 开始的天数。
- 密码最小有效期:0 表示可随时修改。
- 密码最大有效期:
99999表示永不过期。 - 密码过期前警告天数:如
7表示密码过期前 7 天开始警告。 - 密码过期后禁用天数:如
0表示过期后立即禁用。 - 账户过期日期:从 1970-01-01 开始的天数,过期后账户无法登录。
- 保留字段:未使用,通常为空。
查看 /etc/shadow 需 root 权限:
sudo cat /etc/shadow | grep "alice"
/etc/group 文件:组信息
用户组管理权限分配,/etc/group 文件每行代表一个组,字段为:
- 组名:组名称。
- 组密码占位符:通常为空,组密码存储在
/etc/gshadow。 - 组 ID(GID):组唯一标识。
- 组成员:逗号分隔的用户列表,表示该组的成员。
查看组信息:
grep "alice" /etc/group
可能输出:
alice:x:1000:alice
sudo:x:27:alice
表示用户 alice 属于 alice 组(主组)和 sudo 组(附加组)。
高级用户查看技巧
id 命令:查看用户 UID、GID 及所属组
id 命令可以快速显示用户的 UID、GID 以及所属的所有组:

id alice
输出示例:
uid=1000(alice) gid=1000(alice) groups=1000(alice),27(sudo)
-u 参数仅显示 UID,-g 显示 GID,-G 显示所有组 ID。
last 命令:查看用户登录历史
last 命令读取 /var/log/wtmp 文件,显示用户的登录、退出历史,包括时间、终端和 IP 地址:
last alice
输出示例:
alice pts/0 192.168.1.100 Mon Oct 1 10:30 still logged in
alice pts/0 192.168.1.100 Sun Sep 30 15:20 - 10:30 (19:10)
getent 命令:查询系统数据库
getent 命令可以查询系统配置数据库(如 /etc/passwd、/etc/shadow),适合查询非本地用户(如 LDAP 或 NIS 用户):
getent passwd | grep "alice" getent passwd alice
cut 与 awk:提取特定字段
结合文本处理工具,可以精确提取用户信息,提取所有用户名:
cut -d: -f1 /etc/passwd
提取用户名和 UID:
awk -F: '{print $1, $3}' /etc/passwd
Linux 系统提供了丰富的工具查看用户信息,从简单的 users、who 到复杂的 /etc/passwd、/etc/shadow 解析,可以满足不同场景的需求,基础命令适合快速查询,文件解析适合深入了解用户配置,而高级技巧则能实现灵活定制,掌握这些方法,不仅能提升系统管理效率,还能为安全审计和用户权限管理提供有力支持,在实际操作中,需注意权限控制,避免敏感信息泄露,尤其是在多用户或服务器环境中。
















