插件窝 干货文章 linux用户组分为哪些类型

linux用户组分为哪些类型

用户 用户组 权限 developers 667    来源:    2025-04-21

在Linux系统中,用户组(Group)是权限管理的重要机制,主要分为以下三种类型,每种类型有不同的特点和用途:


1. 主用户组(Primary Group)

  • 特点
    • 每个用户必须属于且仅属于一个主用户组。
    • 用户创建文件时,文件的默认属组是用户的主用户组。
    • 主用户组信息记录在 /etc/passwd 文件中(每行的第4字段)。
  • 示例
    • 用户 alice 的主用户组为 developers,则其新建文件的属组自动为 developers
  • 管理命令bash # 创建用户时指定主组 useradd -g developers alice

2. 附加用户组(Supplementary/Secondary Group)

  • 特点
    • 用户除了主组外,可以加入多个附加组。
    • 用于授予用户额外的权限(如访问特定资源)。
    • 附加组信息记录在 /etc/group 文件中(每行的最后字段)。
  • 示例
    • 用户 bob 属于主组 staff,同时加入附加组 dockersudo 以获取相应权限。
  • 管理命令bash # 将用户加入附加组 usermod -aG docker,sudo bob

3. 私有用户组(Private Group)

  • 特点
    • 当创建用户时未明确指定主组,系统会默认创建一个与用户名同名的私有组。
    • 该组通常仅包含用户自己,用于隔离文件权限。
  • 示例
    • 创建用户 charlie 时未指定组,系统自动生成组 charlie 并设为其主组。
  • 典型场景
    • 用户主目录(如 /home/charlie)的权限默认为 drwx------,属组为私有组。

其他特殊类型(补充)

  • 系统组(System Group)
    GID范围通常为 0-999(不同发行版可能不同),用于系统服务或守护进程(如 www-datasyslog)。
  • 普通组(Regular Group)
    GID从 1000 开始,供普通用户使用。

关键配置文件

  1. /etc/passwd
    定义用户及其主组(第4字段为GID)。
  2. /etc/group
    定义组及其成员列表(格式:组名:x:GID:成员列表)。
  3. /etc/gshadow
    存储组密码和安全管理信息(较少直接操作)。

管理命令速查

功能 命令示例
创建组 groupadd developers
修改用户主组 usermod -g developers alice
添加用户到附加组 usermod -aG sudo bob
查看用户所属组 groups aliceid alice
删除组 groupdel developers

通过合理分配用户组类型,可以实现精细的权限控制(如共享目录、限制服务访问等)。如果需要更复杂的权限管理,还可结合 ACL(访问控制列表)sudo权限 进一步扩展。