在Linux上将用户添加到组(或者第二组)
更改与用户关联的组是一项相当容易的任务,但是并不是所有人都知道命令,尤其是将用户添加到辅助组中。我们将为我们逐步介绍所有方案。
可以在Linux上将用户帐户分配给一个或者多个组。我们可以按组配置文件权限和其他特权。例如,在Ubuntu上,只有sudo组中的用户可以使用sudo命令来获得提升的权限。
新增群组
如果要在系统上创建新组,请在命令后使用groupadd
命令,将new_group替换为要创建的组的名称。我们还需要在此命令中使用sudo(或者,在不使用sudo的Linux发行版中,我们需要自己运行su命令以获取提升的权限,然后再运行该命令) 。
sudo groupadd mynewgroup
将现有用户帐户添加到组
要将现有用户帐户添加到系统上的组,请使用" usermod"命令,将" examplegroup"替换为我们要添加用户的组的名称,并将" exampleusername"替换为我们要添加的用户的名称加。
usermod -a -G examplegroup exampleusername
例如,要将用户" data"添加到组" sudo"中,请使用以下命令:
usermod -a -G sudo data
更改用户的主要组
虽然用户帐户可以是多个组的一部分,但其中一个组始终是主要组,而其他组则是辅助组。用户的登录过程以及用户创建的文件和文件夹将分配给主要组。
要更改分配给用户的主要组,请运行" usermod"命令,将" examplegroup"替换为我们要成为主要组的名称,将" exampleusername"替换为用户帐户的名称。
usermod -g groupname username
注意这里的-g。使用小写字母g时,将分配一个主要组。如上使用大写的-G
时,我们将分配一个新的辅助组。
查看分配了用户帐户的组
要查看当前用户帐户所分配的组,请运行" groups"命令。我们会看到一个组列表。
groups
要查看与每个组关联的数字ID,请改为运行id
命令:
id
要查看分配了另一个用户帐户的组,请运行" groups"命令并指定用户帐户的名称。
groups exampleusername
我们还可以通过运行id
命令并指定用户名来查看与每个组关联的数字ID。
id exampleusername
"组"列表中的第一个组或者" id"列表中gid =之后显示的组是用户帐户的主要组。其他组是次要组。因此,在下面的屏幕截图中,用户帐户的主要组是" example"。
创建一个新用户并在一个命令中分配一个组
有时我们可能想要创建一个可以访问特定资源或者目录的新用户帐户,例如新的FTP用户。我们可以在使用useradd
命令创建用户帐户时指定要分配给该用户帐户的组,如下所示:
useradd -G examplegroup exampleusername
例如,要创建一个名为jsmith的新用户帐户并将该帐户分配给ftp组,请运行:
useradd -G ftp jsmith
当然,我们将需要为该用户分配密码:
passwd jsmith
将用户添加到多个组
在将辅助组分配给用户帐户时,我们可以通过用逗号分隔列表轻松地一次分配多个组。
usermod -a -G group1,group2,group3 exampleusername
例如,要将名为data的用户添加到ftp,sudo和example组中,请运行:
usermod -a -G ftp,sudo,example data
我们可以根据需要指定任意数量的组,只需用逗号将它们分开即可。
查看系统上的所有组
如果要查看系统上所有组的列表,可以使用getent
命令:
getent group
此输出还将向我们显示哪些用户帐户是哪个组的成员。