Linux 使用命令行将用户添加到组
您可以使用useradd或usermod命令将用户添加到 Linux 上的组。本页介绍如何使用 CLI 将用户添加到 Linux 中的组。useradd 命令创建新用户或更新默认的新用户信息。usermod 命令修改用户帐户,将用户添加到现有组很有用。Linux 操作系统上有两种类型的组:
- 主要用户组。– 这是您登录时适用的组。通常与您的登录名相同。您的所有进程和文件(包括目录/文件夹)都将以您的主要组作为组成员。主要组允许私人组成员身份和安全功能。您的文件或进程无法被 Linux 系统上的其他组成员或用户访问。
- 次要或补充用户组– 用户可以成为 Linux 系统上其他组的成员。这对于文件共享和其他目的很有用。系统管理员也可以微调安全性。例如,如果您是名为 cdrom 的次要组的成员,则可以安装和卸载 cd-rom 驱动器。
教程详细信息 | |
---|---|
难度等级 | 中间的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 用户管理 |
操作系统兼容性 | Alma • Alpine • Arch • Debian • Fedora • Mint • openSUSE • Pop!_OS • RHEL • Rocky • Stream • SUSE • Ubuntu • WSL |
预计阅读时间 | 6 分钟 |
如何在 Linux 中添加用户到组
请注意,所有用户帐户相关信息都存储在以下文件中:
- /etc/passwd – 每个用户帐户占一行。
- /etc/shadow – 包含系统账户的加密格式的密码信息和可选的账户时效信息。
- /etc/group – 定义系统上的组。
- /etc/default/useradd – 如果 useradd 命令未指定任何值,则此文件包含默认组的值。
- /etc/login.defs – 此文件定义了存储在 /etc/shadow 文件中的影子密码套件的站点特定配置。
我们不会手动修改这些文件。相反,我们会使用各种命令将用户添加到 Linux 中的组中。
Linux命令将用户添加到组
打开终端然后输入:
- 在 Linux 上将一个名为 jerry 的新用户添加到名为 cartoons 的二级组:
$ sudo useradd -G cartoons jerry
- 想要将名为 tom 的新用户添加到名为 cartoons 的主组吗?运行:
$ sudo useradd -g cartoons tom
- 我们可以将一个名为spike的现有用户添加到Linux中名为cartoons的现有组中:
$ sudo useradd -g cartoons spike
如何成为 root 用户
您必须以 root 用户身份运行所有命令。要成为 root 用户,请运行:
$ su -
或者,使用 sudo 命令:
$ sudo -i
使用useradd将新用户添加到辅助组
您需要使用 useradd 命令将新用户添加到现有组(或创建新组然后添加用户)。如果组不存在,请创建它。语法如下:在此示例中,创建一个名为 vivek 的新用户并将其添加到名为 developers 的组中。首先,使用grep 命令
确保组 developers 存在,如下所示:
示例输出:
# useradd -G {group-name} username
# grep "^developers" /etc/group
developers:x:1124:
如果您没有看到任何输出,则需要使用 groupadd 命令添加组开发人员:
# sudo groupadd developers
验证用户 vivek 不存在:
# grep "^vivek" /etc/passwd
您不应该看到上述命令的任何输出。最后,将名为 vivek 的新用户添加到组开发人员:为用户 vivek
# useradd -G developers vivek
设置密码:
# passwd vivek
确保使用id 命令将用户正确添加到组开发人员:
# id vivek
示例输出:
uid=1122(vivek) gid=1125(vivek) groups=1125(vivek),1124(developers)
将用户添加到多个组
请注意,大写 G ( -G) 选项将用户添加到补充组列表中。每个组与下一个组之间用逗号分隔,中间没有空格。例如,将用户 jerry 添加到组 admins、ftp、www 和 developers,请输入:
# useradd -G admins,ftp,www,developers jerry
如何使用useradd将新用户添加到主要组
要将用户 tony 添加到组 developers,请使用以下命令:
请注意,小写 g ( ) 选项将用户添加到初始登录组(主组)。组名必须存在。组号必须引用已存在的组。
# useradd -g developers tony
# id tony
-g
如何使用usermod将现有用户添加到现有组
使用 usermod 命令并使用选项-a~ 将现有用户 tony 添加到 ftp 补充/次要组,即将用户添加到补充组。仅与-G选项一起使用:
# usermod -a -G ftp tony
在此示例中,将 tony 用户的主要组更改为 www,请输入:
# usermod -g www tony
usermod 命令选项汇总
选项 | 目的 |
---|---|
-a--append | 将用户添加到附加组。仅与选项一起使用-G。 |
-g GROUP --gid GROUP |
使用此组作为默认组。 |
-G GRP1,GRP2--groups GRP1,GRP2 | 将用户添加到GRP1、GRP2次级组。 |
创建群组
您可以使用 groupadd 命令创建一个新组,如下所示:在/etc/group上
使用 getent 命令或grep 命令来验证新组名:
$ sudo groupadd {Group_Name_Here}
$ sudo groupadd sftpusers
$ getent group sftpusers
$ grep '^sftpusers' /etc/group
删除群组
您可以使用 groupdel 命令删除现有组:再次在/etc/group上
使用 getent 命令或grep 命令来验证新组名是否已从 Linux 系统中删除:
$ sudo groupdel {Group_Name_Here}
$ sudo groupdel wwwusers
$ getent group wwwusers
$ grep '^wwwusers' /etc/group
查看 Linux 系统上的所有组
使用cat /more/less 命令如下:
$ more /etc/group
## or use the getent command ##
$ getent group
如何查看 Linux 用户帐户所分配到的组?
尝试使用groups 命令或id 命令来找出名为“vivek”的 Linux 用户分配到的组,使用以下两个命令:
$ groups vivek
$ id vivek
关于安全的说明
如果您向现有组添加或删除用户,则必须手动更改任何 crontab 文件或作业的所有者。您还必须在 NIS 服务器上进行涉及 NIS 的任何更改。
关于 GUI 工具的说明
您可能会发现 GUI 工具的使用非常简单。KDE 用户可以使用 KUser 工具,GNOME 用户可以使用 users-admin:
users-admin 是 GNOME 系统工具的一部分,是一组用于轻松访问和管理系统配置的工具
# system-config-users
$ ssh -X -t vivek@server1.example.com sudo system-config-users
总结
您学习了如何在 Linux 操作系统上将新用户或现有用户添加到组。有关更多信息,请在 shell 提示符下键入以下命令,以使用 man 命令或 help 命令阅读手册页:
$ man usermod
$ man passwd
$ man useradd