在CentOS系统中,管理用户属性是系统管理员的核心任务之一,了解如何查看用户属性不仅能帮助管理员监控系统状态,还能有效排查权限问题、安全风险及资源使用情况,本文将详细介绍CentOS系统中查看用户属性的多种方法,涵盖基础命令、高级技巧及实用场景,帮助读者全面掌握相关技能。

查看用户基本信息
用户基本信息是系统管理的起点,包括用户名、用户ID(UID)、主目录、默认Shell等,在CentOS中,/etc/passwd文件是存储这些信息的核心配置文件,通过直接查看该文件或使用命令工具,可以快速获取用户属性。
使用cat或less命令查看/etc/passwd
/etc/passwd文件中的每一行代表一个用户,字段以冒号分隔,依次为:用户名、加密密码(通常显示为x,实际存储在/etc/shadow)、UID、GID、用户描述、主目录、默认Shell。
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin 通过命令cat /etc/passwd可查看全部内容,而less /etc/passwd则支持分页浏览,适合查看大量用户时使用。
使用awk或cut命令提取特定字段
若仅需关注用户名或UID等特定信息,可结合awk或cut命令实现,以下命令将列出所有用户的用户名和UID:
awk -F: '{print $1, $3}' /etc/passwd 其中-F:表示以冒号为分隔符,$1和$3分别对应用户名和UID,类似地,cut -d: -f1,7 /etc/passwd可提取用户名和默认Shell。
查看用户密码状态
密码安全是系统管理的重要环节。/etc/shadow文件存储了用户的加密密码及密码策略信息,包括密码最后修改时间、最小/最大有效期、警告期等,普通用户无法直接访问该文件,只有root用户具备查看权限。
使用passwd -S命令查看密码状态
passwd -S命令可快速查看指定用户的密码状态,输出格式为:用户名 密码状态 密码最后修改时间 最小/最大有效期 警告期 非活跃期 过期时间。
passwd -S root
输出示例:root LK 2025-01-01 0 99999 7 -1,其中LK表示账户被锁定,0表示密码可随时修改。
直接查看/etc/shadow文件
对于更详细的密码策略信息,可直接查看/etc/shadow文件,其字段以冒号分隔,包括:用户名、加密密码、最后修改时间(自1970年1月1日起的天数)、最小密码有效期、最大密码有效期、警告期、非活跃期、过期时间。
sudo cat /etc/shadow | grep username
若加密密码字段为或,表示用户未设置密码或账户被禁用。
查看用户所属组信息
用户组是CentOS权限管理的基础,每个用户至少属于一个主组,还可加入多个附加组。/etc/group文件存储了组信息,而groups或id命令可快速查看用户的组归属。

使用groups命令查看用户所属组
groups命令直接列出指定用户的所有组,包括主组和附加组。
groups username
输出示例:username : username wheel docker,表示用户username属于username(主组)、wheel和docker(附加组)。
使用id命令查看详细组信息
id命令比groups提供更详细的信息,包括UID、GID及所有组ID。
id username
输出示例:uid=1000(username) gid=1000(username) groups=1000(username),10(wheel),993(docker),其中gid为主组ID,groups为所有组ID。
查看/etc/group文件获取组列表
若需查看系统中所有组及其成员,可直接查看/etc/group文件,其字段为:组名、加密密码(通常为x)、GID、组成员列表。
cat /etc/group | grep docker
输出示例:docker:x:993:user1,user2,表示组docker的GID为993,成员包括user1和user2。
查看用户登录及活动信息
监控用户登录行为有助于排查异常访问或资源滥用问题,CentOS提供了多种工具查看用户登录历史、当前登录会话及最近活动记录。
使用last命令查看登录历史
last命令显示所有用户的登录历史,包括登录时间、来源IP、终端信息及会话时长。
last username
输出示例:username pts/0 192.168.1.100 Mon Jan 01 10:00 still logged in,表示用户username当前正在从168.1.100登录。
使用who或w命令查看当前登录用户
who命令列出当前所有登录用户的信息,包括用户名、终端、登录时间及IP地址。
who
w命令则在who的基础上增加了系统负载和用户当前进程的详细信息。

w username
使用lastlog查看用户最近登录时间
lastlog命令显示所有用户的最近登录时间,包括从未登录过的用户。
lastlog -u username
输出示例:username pts/0 192.168.1.100 Mon Jan 01 10:00 +00:00,表示用户username最近一次登录的时间及IP。
查看用户权限与sudo配置
sudo权限允许普通用户以root身份执行命令,是系统安全的重要配置,查看用户的sudo权限有助于确认其操作范围,避免越权行为。
使用sudo -l命令查看用户sudo权限
sudo -l命令列出当前用户的sudo授权规则。
sudo -l -U username
输出示例:User username may run the following commands on hostname: (ALL : ALL) ALL,表示该用户可执行所有命令。
查看/etc/sudoers文件获取详细配置
/etc/sudoers文件是sudo的核心配置文件,可通过visudo命令安全编辑,查看该文件可了解用户的sudo规则,
grep username /etc/sudoers
输出示例:username ALL=(ALL:ALL) ALL,表示用户username具备完全sudo权限。
本文详细介绍了在CentOS系统中查看用户属性的多种方法,包括基本信息、密码状态、组归属、登录历史及sudo权限等,通过灵活运用/etc/passwd、/etc/shadow、/etc/group等配置文件及passwd、groups、last等命令,管理员可以全面掌握用户状态,保障系统安全稳定运行,在实际操作中,建议根据具体需求选择合适的方法,并结合日志分析进行综合判断。
FAQs
如何查看用户的默认Shell?
可通过awk -F: '{print $1, $7}' /etc/passwd | grep username命令查看,其中$7字段即为用户默认Shell,若输出为username /bin/bash,则表示用户的默认Shell为bash。
如何判断用户是否被锁定?
用户锁定状态可通过passwd -S username查看,若输出中第二列为LK(Locked)或NP(No Password),则表示用户被锁定或未设置密码。/etc/shadow文件中加密密码字段为也表明用户被锁定。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复