在Linux中将用户添加到特定组的四种方法
Linux组是用于管理Linux中用户帐户的组织单位。
对于Linux系统中的每个用户和组,它都有唯一的数字标识号。
它称为用户ID(UID)和组ID(GID)。组的主要目的是为组的成员定义一组特权,它们都可以执行特定的操作,但不能执行其他操作。
Linux中有两种类型的默认组。每个用户应该只有一个主要组和任意数量的次要组。
主要组:在创建用户帐户期间,已将主要组添加到用户。通常是用户名。当执行任何操作(例如,创建新文件(或目录),修改文件或执行命令等)时,主要组将应用于用户。用户主要组信息存储在/etc/passwd文件中。
次要小组:被称为补充小组。它允许用户组在相同的组成员文件中执行特定的操作。例如,如果您希望允许很少的用户运行Apache(httpd)服务命令,则非常适合。
可以使用以下四种方法来完成。
usermod: usermod命令修改系统帐户文件以反映在命令行上指定的更改。
gpasswd:gpasswd命令用于管理/etc/group和/etc/gshadow。每个组可以具有管理员,成员和密码。
Shell Script: Shell脚本允许管理员自动执行所需的任务。
Manual Method:我们可以通过编辑/etc/group文件将用户手动添加到任何组中。
我假设您已经有此活动所需的组和用户。在这个例子中,我们将使用以下的用户user1,user2,user3和组 mygroup和mygroup1。
在进行更改之前,我想检查用户和组信息。我可以看到以下用户与他们自己的组关联,而不与其他用户关联。
# id user1
uid=1008(user1) gid=1008(user1) groups=1008(user1)
# id user2
uid=1009(user2) gid=1009(user2) groups=1009(user2)
# id user3
uid=1010(user3) gid=1010(user3) groups=1010(user3)
我可以看到该组中没有关联的用户。
# getent group mygroup
mygroup:x:1012:
# getent group mygroup1
mygroup1:x:1013:
方法1:使用usermod命令
usermod命令修改系统帐户文件以反映在命令行上指定的更改。
如何使用usermod命令将现有用户添加到辅助或辅助组?
要将现有用户添加到辅助组,请使用带-G选项和组名的usermod命令。
句法
# usermod [-G] [GroupName] [UserName]
如果给定的用户或组在系统中不存在,则会收到错误消息。如果您没有收到任何错误,则说明该用户已添加到相应的组中。
# usermod -a -G mygroup user1
让我们使用id命令查看输出。是的,已成功添加。
# id user1
uid=1008(user1) gid=1008(user1) groups=1008(user1),1012(mygroup)
如何使用usermod命令将现有用户添加到多个辅助或辅助组?
要将现有用户添加到多个辅助组,请使用带-Goption选项的usermod命令和带逗号的组名称。
句法
# usermod [-G] [GroupName1,GroupName2] [UserName]
在此示例中,我们将添加user2到mygroup和中mygroup1。
# usermod -a -G mygroup,mygroup1 user2
让我使用id命令查看输出。是的,user2已成功添加到mygroup和中mygroup1。
# id user2
uid=1009(user2) gid=1009(user2) groups=1009(user2),1012(mygroup),1013(mygroup1)
如何更改用户的主要组?
要更改用户的主要组,请使用带-g选项和组名的usermod命令。
句法
# usermod [-g] [GroupName] [UserName]
我们必须使用-g更改用户的主要组。
# usermod -g mygroup user3
让我们看一下输出。是的,它已成功更改。现在,它显示mygroup为user3主要组,而不是user3。
# id user3
uid=1010(user3) gid=1012(mygroup) groups=1012(mygroup)
方法2:使用gpasswd命令?
gpasswd命令用于管理/ etc / group和/ etc / gshadow。每个组可以具有管理员,成员和密码。
如何使用gpasswd命令将现有用户添加到次要或补充组?
要将现有用户添加到辅助组,请使用带有-M选项的gpasswd命令和该组的名称。
句法
# gpasswd [-M] [UserName] [GroupName]
在此示例中,我们将添加user1到mygroup。
# gpasswd -M user1 mygroup
让我们使用id命令查看输出。是的,user1已成功添加到中mygroup。
# id user1
uid=1008(user1) gid=1008(user1) groups=1008(user1),1012(mygroup)
如何使用gpasswd命令将多个用户添加到辅助或补充组?
要将多个用户添加到辅助组,请使用带有-M选项的gpasswd命令和该组的名称。
句法
# gpasswd [-M] [UserName1,UserName2] [GroupName]
在这个例子中,我们要添加user2和user3成mygroup1。
# gpasswd -M user2,user3 mygroup1
让我们使用getent命令查看输出。是的,user2并且user3已成功添加到中mygroup1。
# getent group mygroup1
mygroup1:x:1013:user2,user3
如何使用gpasswd命令从组中删除用户?
要将用户从组中删除,请使用带-d选项的gpasswd命令以及用户和组的名称。
句法
# gpasswd [-d] [UserName] [GroupName]
在此示例中,我们user1将从中删除mygroup。
# gpasswd -d user1 mygroup
Removing user user1 from group mygroup
方法3:使用Shell脚本
根据以上示例,我们知道该usermod命令无法将多个用户添加到组中,但是可以通过该gpasswd命令来完成。
但是,它将覆盖组中当前关联的现有用户。
例如,user1已经与关联mygroup。如果您想在with 命令中添加user2和添加命令,该命令将无法正常运行,并且会直接作用在该组上,而不是对其进行修改。user3mygroupgpasswd
如果您想将多个用户添加到多个组,将如何解决?
这两个命令中都没有默认选项可实现此目的。
因此,我们需要编写一个小的Shell脚本来实现这一目标。
方法3a:如何使用gpasswd命令将多个用户添加到辅助或辅助组?
如果要使用gpasswd命令将多个用户添加到辅助组或补充组中,请创建以下小型Shell脚本。
创建用户列表。每个用户应位于单独的行中。
$ cat user-lists.txt
user1
user2
user3
使用以下Shell脚本将多个用户添加到单个辅助组。
vi group-update.sh
#!/bin/bash
for user in `cat user-lists.txt`
do
usermod -a -G mygroup $user
done
设置文件的可执行权限group-update.sh。
# chmod + group-update.sh
最后运行脚本以实现此目的。
# sh group-update.sh
让我们使用getent命令查看输出。是的,user1,user2并user3成功加入mygroup。
# getent group mygroup
mygroup:x:1012:user1,user2,user3
方法3b:如何使用gpasswd命令将多个用户添加到多个辅助或补充组?
如果要使用gpasswd命令将多个用户添加到多个辅助组或补充组中,请创建以下小型Shell脚本。
创建用户列表。每个用户应位于单独的行中。
$ cat user-lists.txt
user1
user2
user3
创建组列表。每个组应放在单独的行中。
$ cat group-lists.txt
mygroup
mygroup1
使用以下Shell脚本将多个用户添加到多个辅助组。
#!/bin/sh
for user in `more user-lists.txt`
do
for group in `more group-lists.txt`
do
usermod -a -G $group $user
done
done
设置文件的可执行权限group-update-1.sh。
# chmod +x group-update-1.sh
最后运行脚本以实现此目的。
# sh group-update-1.sh
让我使用getent命令查看输出。是的,user1,user2并user3成功加入mygroup。
# getent group mygroup
mygroup:x:1012:user1,user2,user3
此外,user1,user2并user3成功加入mygroup1。
# getent group mygroup1
mygroup1:x:1013:user1,user2,user3
方法4:在Linux中将用户添加到组的手动方法?
我们可以通过编辑/etc/group文件将用户手动添加到任何组中。
打开/etc/group文件并搜索您要在其中更新用户的组名。最后,将“用户”更新为相应的组。
# vi /etc/group
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任