找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1686

积分

0

好友

220

主题
发表于 2026-2-11 14:26:29 | 查看: 37| 回复: 0

在 Linux 系统管理中,有效地管理用户和组是一项基础且至关重要的任务。通常,只有具备管理员权限(如 root 用户或使用 sudo)才能执行将用户添加到组的操作。理解 Linux 中的组类型是第一步:

  • 主组(Primary Group):每个用户在创建时都会有一个与之同名的主组。当用户创建新文件时,该文件的默认组属性即为用户的主组。主组信息记录在 /etc/passwd 文件中。
  • 次级组(Secondary/Supplementary Group):用户可以被加入一个或多个次级组,以获得对特定软件、文件或目录的额外访问权限。这为精细化的权限控制提供了可能,例如在 运维/DevOps/SRE 场景中管理服务账户权限。

每个用户必须属于一个主组,同时可以隶属于多个次级组。本文将详细介绍在 Ubuntu 24.04 系统中,如何运用多种命令行工具来完成用户与组的管理操作。

查看现有用户与组

在执行任何添加操作之前,你可能需要先确认系统中已有的用户和组。

使用以下命令可以列出所有系统用户(仅显示用户名):

cat /etc/passwd | awk -F: '{print $1}'

终端列出/etc/passwd文件中的用户名列表

要查看所有现有的组,可以运行:

cut -d: -f1 /etc/group

终端列出/etc/group文件中的组名列表

将现有用户添加到组

对于已存在的用户,你可以使用 addusergpasswdusermod 命令将其加入新的组。

1. 使用 adduser 命令

adduser 命令不仅用于创建用户,也能方便地将现有用户添加到指定组。其基本语法如下:

sudo adduser <用户名> <组名>

例如,将用户 sys 添加到 adm 组:

sudo adduser sys adm

2. 使用 gpasswd 命令

gpasswd 命令专门用于管理 /etc/group 文件,是另一个添加用户到组的实用工具。

添加单个用户

sudo gpasswd -a <用户名> <组名>

示例:将用户 backup 添加到 voice 组。

sudo gpasswd -a backup voice

一次性添加多个用户到同一个组
-M 选项允许你指定一个逗号分隔的用户列表来设置组的成员(注意:这会覆盖组现有的成员列表)。

sudo gpasswd -M <用户1>,<用户2>,<用户3> <组名>

示例:将用户 newsmaillp 设置为 proxy 组的成员。

sudo gpasswd -M news,mail,lp proxy

3. 使用 usermod 命令

usermod 命令功能强大,常用于修改用户的各项属性,包括其所属的组。这是最常用且推荐的方法之一。

添加用户到一个次级组

sudo usermod -aG <组名> <用户名>
  • -a (append):表示将用户追加到组,而不移除该用户原有的其他组身份。
  • -G:指定一个或多个次级组。

一个非常常见的实际应用是,在安装 Docker 后,为了避免每次执行 Docker 命令都需要 sudo,需要将当前用户添加到 docker 组:

sudo usermod -aG docker $USER

执行此命令后,通常需要注销并重新登录,或启动新的 shell 会话,组更改才会生效。

添加用户到多个次级组
你可以在一条命令中将用户加入多个组,组名之间用逗号分隔,不要有空格

sudo usermod -aG <组1>,<组2>,<组3> <用户名>

示例:将用户 uucp 同时添加到 floppycdrom 组。

sudo usermod -aG floppy,cdrom uucp

创建新用户时直接指定组

除了管理现有用户,在创建新用户时,你也可以直接指定其主组或次级组。

创建用户并指定主组 (-g):

sudo useradd -g <组名> <新用户名>

创建用户并指定一个或多个次级组 (-G):

sudo useradd -G <组名> <新用户名>

示例:创建一个名为 devops 的新用户,并使其成为 man 组的成员。

sudo useradd -G man devops

验证用户所属的组

操作完成后,如何确认用户是否已被成功添加到目标组呢?

  1. 使用 groups 命令查看用户所在的所有组:

    groups <用户名>
  2. 使用 id 命令获取更详细的用户身份信息,包括用户ID(Uid)、主组ID(Gid)以及所属的所有组ID(Groups):

    id <用户名>

总结

在 Ubuntu 24.04 等 Linux 发行版中,熟练地将用户添加到组是进行权限控制和系统管理的基础技能。本文介绍了三种核心命令:

  • usermod -aG:最常用、最安全的方式,用于为现有用户添加次级组。
  • gpasswd:适合专门管理组成员,尤其是一次性设置多个成员。
  • adduser:语法简单直观,同样适用于现有用户。

理解主组与次级组的区别,并正确运用这些命令,可以帮助你更好地配置服务器权限、管理软件访问控制,是每位系统管理员或开发者在处理 网络/系统 基础架构时必须掌握的技巧。记住,涉及组变更后,通常需要用户重新登录才能使新的组权限生效。




上一篇:Node.js异步编程:为何及如何用async/await替代.then()链条
下一篇:在 VirtualBox 虚拟机中安装 Arch Linux 及 KDE Plasma 桌面环境详细指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-23 12:57 , Processed in 0.615908 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表