在 Linux 上将用户添加到组(或第二组)

摘要:要将用户添加到组中,请打开终端,然后在窗口中键入“sudo usermod -a -G examplegroup exampleusername”。将“examplegroup”和“exampleusername”替换为您要修改的组和用户名。
更改用户关联的组是一项相当容易的任务,但并不是每个人都知道这些命令,尤其是将用户添加到辅助组的命令。我们将为您介绍所有场景。
在 Linux 上可以将用户帐户分配给一个或多个组。您可以按组配置文件权限和其他权限。例如,在 Ubuntu 上,只有 sudo 组中的用户可以使用 sudo
命令来获得提升的权限。
如果你使用的是一台新的 Linux 笔记本电脑,你可能有某种类型的 GUI 界面来配置这些设置(至少取决于你正在运行的发行版)但实际上几乎总是更容易直接进入终端并键入一些命令,这就是我们今天向您展示的内容。
添加新组
如果您想在您的系统上创建一个新组,请在命令后使用 groupadd
命令,将 new_group 替换为您要创建的组的名称。您还需要将 sudo 与此命令一起使用(或者,在不使用 sudo
的 Linux 发行版上,您需要对其运行 su
命令拥有以在运行命令之前获得提升的权限)。
sudo groupadd mynewgroup

将现有用户帐户添加到组
要将现有用户帐户添加到系统上的组,请使用 usermod
命令,将 examplegroup
替换为您要将用户添加到的组的名称和 exampleusername
包含您要添加的用户的名称。
usermod -a -G examplegroup exampleusername
例如,要将用户 geek
添加到组 sudo
,请使用以下命令:
usermod -a -G sudo geek

更改用户的主要组
虽然一个用户帐户可以属于多个组,但其中一个组始终是“主要组”,其他组是“次要组”。用户的登录过程以及用户创建的文件和文件夹将分配给主要组。
要更改用户分配到的主要组,请运行 usermod
命令,将 examplegroup
替换为您希望成为主要组的名称和 exampleusername
与用户帐户的名称。
usermod -g groupname username
请注意此处的 -g
。当您使用小写字母 g 时,您分配了一个主要组。当您使用大写字母 -G
时,如上所述,您分配了一个新的辅助组。

查看用户帐户分配到的组
要查看当前用户帐户分配到的组,请运行 groups
命令。您会看到一个群组列表。
groups
要查看与每个组关联的数字 ID,请改为运行 id
命令:
id

要查看其他用户帐户分配到的组,请运行 groups
命令并指定用户帐户的名称。
groups exampleusername
您还可以通过运行 id
命令并指定用户名来查看与每个组关联的数字 ID。
id exampleusername
groups
列表中的第一个组或 id
列表中“gid=”之后显示的组是用户帐户的主要组。其他组是次要组。因此,在下面的屏幕截图中,用户帐户的主要组是 example
。

在一个命令中创建一个新用户并分配一个组
有时您可能想要创建一个新的用户帐户来访问特定的资源或目录,例如新的 FTP 用户。您可以在使用 useradd
命令创建用户帐户时指定用户帐户将分配到的组,如下所示:
useradd -G examplegroup exampleusername
例如,要创建一个名为 jsmith 的新用户帐户并将该帐户分配给 ftp 组,您可以运行:
useradd -G ftp jsmith
当然,您之后需要为该用户分配一个密码:
passwd jsmith

将用户添加到多个组
在将次要组分配给用户帐户时,您可以通过用逗号分隔列表来轻松地一次分配多个组。
usermod -a -G group1,group2,group3 exampleusername
例如,要将名为 geek 的用户添加到 ftp、sudo 和 example 组,您可以运行:
usermod -a -G ftp,sudo,example geek
您可以指定任意数量的组——只需用逗号将它们隔开即可。

查看系统上的所有组
如果要查看系统上所有组的列表,可以使用 getent
命令:
getent group
此输出还将显示哪些用户帐户是哪些组的成员。因此,在下面的屏幕截图中,我们可以看到用户帐户 syslog 和 chris 是 adm 组的成员。

这应该涵盖了有关在 Linux 上将用户添加到组所需了解的所有内容。
Linux Commands | ||
Files | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc | |
Processes | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | |
Networking | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
RELATED: Best Linux Laptops for Developers and Enthusiasts