当前位置:首页 > 问答 > 正文

用户管理|权限设置 centos查询所有用户及所属用户组的方法

CentOS用户管理指南:如何查询所有用户及所属用户组

最新动态:根据2025年7月发布的Linux安全报告,CentOS系统管理员需定期审查用户权限,以防止未授权访问,合理管理用户和用户组是维护系统安全的重要环节。

为什么需要查询用户及用户组?

在日常服务器管理中,了解系统中有哪些用户、这些用户属于哪些用户组,是权限管理和安全审计的基础,无论是排查异常登录、分配新权限,还是清理离职员工的账户,掌握这些信息都至关重要。

查询所有用户的方法

查看/etc/passwd文件

CentOS中所有用户信息存储在/etc/passwd文件中,通过以下命令查看:

用户管理|权限设置 centos查询所有用户及所属用户组的方法

cat /etc/passwd

每行输出格式为:
用户名:密码占位符(x):UID:GID:描述信息:家目录:默认shell

使用getent命令(推荐)

更现代的方法是使用getent,它还能查询LDAP等网络用户:

getent passwd

仅列出普通用户

系统用户通常UID≥1000,可通过以下命令筛选:

awk -F: '$3 >= 1000 {print $1}' /etc/passwd

查询用户所属用户组

查看单个用户的组信息

groups 用户名
# 或
id 用户名

示例输出:
username : group1 group2 group3

用户管理|权限设置 centos查询所有用户及所属用户组的方法

查看所有用户组关系

getent group

或使用compgen命令(仅bash支持):

compgen -g

实用组合命令

生成用户-组对应表

for user in $(cut -d: -f1 /etc/passwd); do 
    echo -n "用户 $user 属于组:"; 
    groups $user | cut -d: -f2; 
done

检查sudo权限用户

grep -Po '^sudo.+:\K.*$' /etc/group

注意事项

  1. 敏感信息保护/etc/passwd默认全局可读,但密码实际存储在/etc/shadow
  2. 审计建议:定期对比/etc/passwd/etc/shadow,确保无幽灵账户
  3. 新用户验证:创建用户后建议用id 新用户名确认组分配正确

通过以上方法,你可以全面掌握CentOS系统中的用户权限分布,记得将查询结果与业务需求对照,及时清理无用账户,这是保障服务器安全的关键步骤。

发表评论