菜鸟科技网

Linux如何查看所有用户列表?

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

Linux如何查看所有用户列表?-图1
(图片来源网络,侵删)

查看/etc/passwd文件

/etc/passwd是Linux系统存储用户信息的核心文件,每行代表一个用户,字段以冒号分隔,格式为:用户名:密码占位符:UID:GID:用户描述:主目录:默认Shell,使用catless命令可以查看文件内容:

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/nologin

x表示密码存储在/etc/shadow文件中,UID为0的是超级用户,UID小于1000的通常是系统用户。

Linux如何查看所有用户列表?-图2
(图片来源网络,侵删)

使用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:::

或表示用户被锁定或无密码。

Linux如何查看所有用户列表?-图3
(图片来源网络,侵删)

查看活跃用户

结合lastwho命令可以查看当前登录的用户:

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

使用awkcut提取特定字段

若仅需要用户名列表,可通过awkcut处理/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  # 显示组详细信息
分享:
扫描分享到社交APP
上一篇
下一篇