如何在 Linux 上使用 Groupadd 管理用户组
需要在 Linux 系统上管理多个用户?以下是如何使用 groupadd、usermod 和其他命令来执行此操作。
如果您在个人计算机上运行 Linux,则用户管理非常简单。但是,对于那些拥有数千个用户的服务器的人来说,管理成为一个需要注意的严重问题。
幸运的是,基于 Linux 的操作系统为您提供了一种控制和管理系统上的用户的方法。您可以创建组并向其中添加用户。然后,您无需为系统上的每个用户分配权限,而是可以通过向用户组提供与系统工作流程关联的权限来轻松授权他们。
在 Linux 上创建用户组
Linux 带有一个用于创建用户组的默认命令。您可以使用groupadd命令将新组添加到系统中。该命令的基本语法是:
groupadd [options] groupname
创建新用户组“writers”:
groupadd writers
运行上述命令将向系统上的 /etc/group 和 /etc/gshadow 文件添加一个新条目。您可以通过在终端中输入 cat /etc/group 和 cat /etc/gshadow 来检查文件中的新组条目。
请注意,只有具有管理权限的用户才能创建用户组。在执行 groupadd 命令之前不要忘记切换到超级用户。
如果您尝试创建一个名称已存在的组,您将看到一条错误消息:
groupadd: group 'writers' already exists
但是,您可以通过在命令中使用 -f 或 --force 标志来消除该错误。
groupadd --force writers
groupadd -f writers
创建具有唯一GID的用户组
当您创建新的用户组时,系统会自动为其分配一个组 ID 或 GID。如果您希望您的组具有特定的组 ID,您可以使用 -g 或 --gid 标志来实现。
groupadd -g 600 writers
groupadd --gid 600 writers
如果您尝试分配已使用的组 ID,则会出现以下错误。
groupadd: GID '600' already exists
虽然不推荐,但您可以添加-o或--non-unique标志来强制分配组ID。
groupadd -o -g 600 writers
使用密码创建用户组
尽管您可以向组添加密码,但它们对用户没有实际用途。 -p 标志允许您为您的用户组指定密码。
groupadd -p secretpassword writers
在 Linux 中创建系统组
系统组和常规组之间存在细微差别。系统组是特殊的组,包括负责执行系统操作(例如备份和维护)的用户。
使用 -r 或 --system 标志在 Linux 上创建系统组:
groupadd -r hardwareteam
groupadd --system hardwareteam
获取用户组中的成员列表
要了解特定组中有多少成员,您可以从终端使用 getent 命令。以下命令将显示“writers”组中所有成员的列表:
getent group writers
将用户添加到组
现在您已经在系统上创建了一个用户组,是时候向其中添加一些用户了。 Usermod 是一个功能强大的命令行实用程序,因为它包含与用户管理和审核相关的各种选项。它还允许您轻松地将用户添加到您的组中。该命令的基本语法是:
usermod [options] groupname username
将现有用户添加到组中
如果您想将现有用户添加到您的组中,则需要 -a 和 -G 标志。 -G 标志代表组,而 -a 代表追加、添加或添加。
usermod -a -G writers randomuser
您还可以将一个用户添加到多个组。您所要做的就是输入以逗号分隔的组名称。
usermod -a -G writers,admin,owner randomuser
将新用户添加到组中
当您想要向 Linux 系统添加新用户时,可以使用 useradd 命令。 Useradd 为您提供了一种在创建用户时将组分配给用户的方法。 -G 标志允许您为用户指定一个组。
useradd -G writers randomuser
将用户添加到多个组也很容易。只需在默认命令中传递以逗号字符分隔的组名称即可。
useradd -G writers,admin,owner randomuser
从组中删除用户
您还可以使用usermod从组中删除用户。请记住,在 Linux 系统中,可以将多个组分配给一个用户。其中一个组被声明为主要组,而其他组则被称为次要组。
如果您尝试从群组中删除用户,请确保删除后该用户至少拥有一个主要群组。例如,用户“random”是 admin、writers 和 editors 组的一部分;其中 admin 是主要组,其余是次要组。
您只能从作者和编辑组中删除该用户。为此,您必须传递您希望用户保留其成员身份的组名称。这意味着,要从组编辑器中删除用户“random”,请使用以下命令:
usermod -G writers random
请注意,您所要做的就是从用于将用户添加到组的命令中删除附加标志 (-a)。
在 Linux 上删除组
当您不想再在系统上保留用户组时,可以使用groupdel命令删除该组。该命令的语法是:
groupdel [options] groupname
删除用户组“writers”:
groupdel writers
如果您尝试删除不存在的组,您将收到一条错误消息:
groupdel: group 'writers' does not exist
在 Linux 上管理用户组
如果您不知道需要使用的 Linux 命令,用户管理可能会很困难。一旦您了解了与审核和管理相关的命令的进出,事情就会变得非常容易。
服务器管理员应尝试使用非常适合其需求的 Linux 发行版。这样,他们将立即获得服务器管理所需的所有工具和实用程序。