在CentOS系统中,查看用户列表是系统管理中的基础操作,无论是为了安全审计、权限管理还是日常维护,掌握多种查看方法都至关重要,本文将详细介绍几种常用的查看用户列表的方式,涵盖基础命令、高级筛选以及用户属性信息的获取,帮助您全面了解系统中的用户情况。

使用 /etc/passwd 文件查看用户列表
/etc/passwd 是Linux系统中存储用户基本信息的核心文件,每行记录对应一个用户,通过直接查看该文件可以获取完整的用户列表,打开终端,输入以下命令:
cat /etc/passwd
该命令会显示所有用户的详细信息,包括用户名、加密密码占位符、UID(用户ID)、GID(主组ID)、用户描述、家目录路径和默认Shell,若只需查看用户名,可结合 cut 命令简化输出:
cut -d: -f1 /etc/passwd
-d: 表示以冒号为分隔符,-f1 表示提取第一个字段(即用户名)。
使用 getent 命令查询用户信息
getent 命令用于查询系统配置数据库(如/etc/passwd)中的条目,其优势在于能同时显示本地用户和通过网络信息服务(NIS、LDAP等)管理的用户,执行以下命令:
getent passwd
输出格式与 /etc/passwd 一致,但内容更全面,若需筛选特定用户,可结合 grep 命令,
getent passwd | grep 'username'
查看 Shell 为/bin/bash 的活跃用户
只有拥有登录权限的用户才会使用/bin/bash 作为默认Shell,通过以下命令可筛选出此类用户:
getent passwd | grep '/bin/bash' | cut -d: -f1
此方法有助于快速定位系统中可交互登录的用户,常用于排查异常账户或审计登录权限。

查看/etc/shadow 文件获取用户密码状态
/etc/shadow 文件存储了用户的密码加密信息及账户状态,如密码过期时间、是否锁定等,虽然普通用户无法直接查看,但root用户可通过以下命令检查用户密码状态:
sudo cat /etc/shadow | cut -d: -f1,5,8
该命令会显示用户名、密码过期天数和账户失效时间,适用于安全审计和密码策略管理。
使用 awk 命令提取特定用户属性
awk 是强大的文本处理工具,可灵活提取/etc/passwd 中的特定字段,查看所有用户的UID和家目录:
awk -F: '{print $1, $3, $6}' /etc/passwd
-F: 设置分隔符为冒号,$1、$3、$6 分别对应用户名、UID和家目录。
查看当前登录系统的用户
若需实时了解当前在线用户,可使用 who 或 w 命令:
who
w
who 简洁显示用户名、终端、登录时间和来源IP,而 w 提供更详细的系统负载和用户活动信息。
相关问答FAQs
Q1: 如何区分系统用户和普通用户?
A: 在/etc/passwd 文件中,UID(第三个字段)是关键判断依据,UID为0的是root用户,UID小于1000(或500,取决于系统版本)的通常为系统用户(如daemon、bin),而UID大于等于1000的为普通用户,通过以下命令可仅列出普通用户:

awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Q2: 如何查看用户的组成员信息?
A: 使用 groups 命令可查看指定用户的所属组,
groups username
或通过 /etc/group 文件查询:
grep 'username' /etc/group
若需查看所有用户的组信息,可执行:
getent group
结合 awk 或 grep 可进一步筛选结果。