Linux 中管理用户组:详细指南
设想一下,你是一位大型项目的系统管理员,经常收到来自质量保证(QA)团队的抱怨,声称开发团队的代码库一团糟,反之亦然。 经过深入调查,你发现这两个团队同属一个部门,共享相同的代码库。 为了解决这个问题,你向前辈寻求帮助,他建议你为开发团队和质量保证团队的用户分别创建两个独立的用户组。 然而,你对如何在 Linux 系统中将用户添加到组中并不熟悉。 不必担心,我们将帮助你解决这个问题。 本文将详细介绍如何在 Linux 系统中创建新组、创建新用户,以及如何将用户添加到这些组中。
2023 年 Linux 用户组管理
在我们深入探讨如何创建用户组、创建用户并将新用户或现有用户添加到这些组之前,我们需要先理解 Linux 中的用户组概念。 让我们首先了解什么是用户组,然后再继续学习如何将用户添加到组中。
Linux 中用户组的含义
通常,一个组织会被划分成不同的团队,每个团队负责不同的职能。 组织中的每个成员都隶属于特定的团队。 类似地,在多用户操作系统中,每个用户都属于一个组,该组拥有一系列特定的权限,例如读取、写入或执行组内共享资源的权限。 Linux 系统中的用户组可以分为两种类型:
主要组
当你登录系统会话时,你默认属于一个主要组。 通常情况下,主要组的名称与你的 Linux 用户名相同。 你创建的任何文件或进程都将归属于该主要组,并且默认情况下,其他组的用户无法访问。 有关主要组的用户ID、组ID等信息都存储在 /etc/passwd
文件中。
次要组
当需要在特定的用户组之间共享对某些文件或进程的访问权限时,次要组(也称为补充组)就显得尤为重要。 只有 root 用户或拥有 sudo 权限的用户才能分配新的权限或将新用户添加到次要组。
一个用户只能隶属于一个主要组,但是可以属于多个次要组。 现在你对 Linux 中的用户组有了基本的理解,接下来让我们学习如何创建新用户并将他们添加到组中。
如何在 Linux 中添加新用户
要创建新用户,可以使用 useradd
命令,其基本语法如下:
sudo useradd <选项> 用户名
以下是一些常用的选项:
-d
: 指定新用户的家目录。-e
: 指定用户账户的过期日期。-u
: 指定新用户的用户 ID。
新创建的用户最初只属于其主要组。 创建新用户后,使用 passwd
命令为其设置密码:
sudo passwd <用户名>
系统会提示你输入新密码,并要求你重新输入密码进行确认。 完成此步骤后,用户就可以使用新创建的用户名和密码登录系统了。
如何在 Linux 中创建用户组
在创建新用户之后,你可以开始创建组并将用户添加到组中。 使用 groupadd
命令来创建新组。 确保为新组指定一个唯一的名称,避免与其他现有组名冲突。 语法如下:
sudo groupadd <组名>
如何将用户添加到组中
创建组后,现在可以开始向其中添加用户。 只有 root 用户或拥有 sudo 访问权限的用户才能将用户添加到不同的组中。
将现有用户添加到现有组
要将现有用户添加到现有组,可以使用 usermod
命令,其语法如下:
sudo usermod -a <用户名> -G <组名>
其中 -a
选项表示追加(添加到末尾),将用户添加到现有组;-G
标志用于指定用户要添加到的组的名称。 该命令没有用于详细输出的选项,只有在用户或组不存在时才会发出警告。
将用户添加到多个组
Linux 中的 usermod
命令还可以用于将用户添加到多个组,其选项与添加单个组基本相同,如下所示。 请务必使用逗号分隔组名,并且组名之间不要有空格。
sudo usermod -a <用户名> -G <组名1>,<组名2>,<组名3>
创建新用户并指定组
在 Linux 中,可以使用单个命令同时创建新用户并将其添加到指定的组中。 useradd
命令允许你创建新用户,然后将其添加到指定的组。 使用 useradd
命令添加新用户的语法如下:
sudo useradd <用户名> -G <组名1>,<组名2>,<组名3>
查看用户所属的组
要查看与用户关联的所有组,可以使用 groups
命令或 id
命令。 检查以下语法:
groups <用户名>
id <用户名>
如果 <用户名>
为空,则只会显示当前用户的组名。
如何从组中移除用户
要从 Linux 发行版的组中移除用户,可以使用 gpasswd
命令,其语法如下:
sudo gpasswd -d <用户名> <组名>
除了从组中移除用户之外,gpasswd
命令还用于执行各种管理任务,例如定义组管理员或设置组密码等。
在 Linux 中删除组
要在 Linux 中删除任何次要组,可以使用 groupdel
命令:
sudo groupdel <组名>
如何更改用户的主要组
到目前为止,我们讨论的所有命令都适用于次要组及其用户。 要在 Linux 中更改用户的主要组,请使用以下语法:
sudo usermod -g <新的主要组> <用户名>
你可能想知道 -g
和 -G
标志之间有什么区别。 -g
标志用于设置主要组,而 -G
标志用于设置次要组。
如何在 Linux 中列出所有用户组
在安装时创建的用户称为系统用户,他们是 Linux 中许多默认组的成员。 系统中每个组的信息都存储在 /etc/group
文件中。 要列出系统中的所有组,请使用以下命令:
sudo cat /etc/group
在 Linux 终端中管理用户和组
管理组是一项非常有用的技能,在各种操作中都能派上用场,尤其是在你担任系统管理员时。 本文介绍了在 Linux 终端中用于创建新用户、创建新组、将新用户添加到组等操作的简单命令。 我们希望这篇文章能解决你的问题。 如果你还有任何疑问,请在下方评论区告诉我们,我们将尽力帮助你。