在Linux系统中,管理员经常需要查看系统中的所有用户信息,以进行权限管理、安全审计或故障排查,Linux用户信息主要存储在/etc/passwd文件中,该文件记录了每个用户的基本属性,如用户名、用户ID(UID)、主目录、默认Shell等,通过结合其他命令和工具,可以获取更详细的用户信息,如用户组、登录状态、活动记录等,以下是几种常用的查看所有用户的命令及其详细说明。

查看/etc/passwd文件
/etc/passwd是Linux系统存储用户信息的核心文件,每行代表一个用户,字段以冒号分隔,格式为:用户名:密码占位符:UID:GID:用户描述:主目录:默认Shell,使用cat或less命令可以查看文件内容:
cat /etc/passwd
或
less /etc/passwd
输出示例:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologinx表示密码存储在/etc/shadow文件中,UID为0的是超级用户,UID小于1000的通常是系统用户。

使用getent命令
getent命令查询系统配置数据库(如/etc/passwd),支持多种命名服务(如LDAP、NIS),查看所有用户:
getent passwd
该命令的优势是可以显示通过网络服务(如LDAP)管理的用户,而不仅仅是本地文件中的用户。
查看/etc/shadow文件(需root权限)
/etc/shadow文件存储用户的加密密码和密码策略信息,字段包括:用户名:加密密码:最后修改日期:最小密码有效期:最大密码有效期:警告期:非活跃期:账户过期日期,仅root可访问:
sudo cat /etc/shadow
root:$6$abc123...:18632:0:99999:7:::
daemon:*:18632:0:99999:7:::或表示用户被锁定或无密码。

查看活跃用户
结合last或who命令可以查看当前登录的用户:
who
输出示例:
user1 pts/0 2023-10-01 10:00 (192.168.1.100)
user2 pts/1 2023-10-01 11:30 (192.168.1.101)last命令则显示最近的登录记录:
last
使用awk或cut提取特定字段
若仅需要用户名列表,可通过awk或cut处理/etc/passwd:
awk -F: '{print $1}' /etc/passwd或
cut -d: -f1 /etc/passwd
用户信息对比表
| 命令 | 功能 | 权限要求 | 输出示例 |
|---|---|---|---|
cat /etc/passwd | 查看所有用户基本信息 | 普通用户 | root:x:0:0:root:/root:/bin/bash |
getent passwd | 查询系统数据库中的用户 | 普通用户 | user1:x:1000:1000::/home/user1:/bin/bash |
sudo cat /etc/shadow | 查看密码和策略信息 | root | user1:$6$abc123…:18632:0:99999:7::: |
who | 查看当前登录用户 | 普通用户 | user1 pts/0 2023-10-01 10:00 (192.168.1.100) |
相关问答FAQs
Q1: 如何区分系统用户和普通用户?
A1: 在/etc/passwd中,系统用户的UID通常小于1000(如UID=0为root),普通用户UID大于或等于1000,可通过以下命令筛选:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd # 普通用户
awk -F: '$3 < 1000 {print $1}' /etc/passwd # 系统用户Q2: 如何查看某个用户所属的所有组?
A2: 使用groups命令或查看/etc/group文件:
groups username # 显示用户所属组 grep username /etc/group # 显示组详细信息
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/418577.html<
