Linux中把用户添加到组的4个方法总结
前言
Linux组是用于管理Linux中用户帐户的组织单位。对于Linux系统中的每一个用户和组,它都有惟一的数字标识号。它被称为用户ID(UID)和组ID(GID)。组的主要目的是为组的成员定义一组特权。它们都可以执行特定的操作,但不能执行其他操作。
Linux中有两种类型的默认组。每个用户应该只有一个主要组primarygroup 和任意数量的次要组secondarygroup 。
•主要组:创建用户帐户时,已将主要组添加到用户。它通常是用户的名称。在执行诸如创建新文件(或目录)、修改文件或执行命令等任何操作时,主要组将应用于用户。用户的主要组信息存储在/etc/passwd文件中。
•次要组:它被称为次要组。它允许用户组在同一组成员文件中执行特定操作。例如,如果你希望允许少数用户运行Apache(httpd)服务命令,那么它将非常适合。
你可能对以下与用户管理相关的文章感兴趣。
•在Linux中创建用户帐户的三种方法?
•如何在Linux中创建批量用户?
•如何在Linux中使用不同的方法更新/更改用户密码?
可以使用以下四种方法实现。
•usermod:修改系统帐户文件,以反映在命令行中指定的更改。
•gpasswd:用于管理/etc/group和/etc/gshadow。每个组都可以有管理员、成员和密码。
•Shell脚本:可以让管理员自动执行所需的任务。
•手动方式:我们可以通过编辑/etc/group文件手动将用户添加到任何组中。
我假设你已经拥有此操作所需的组和用户。在本例中,我们将使用以下用户和组:user1、user2、user3,另外的组是mygroup和mygroup1。
在进行更改之前,我希望检查一下用户和组信息。详见下文。
我可以看到下面的用户与他们自己的组关联,而不是与其他组关联。
#iduser1 uid=1008(user1)gid=1008(user1)groups=1008(user1) #iduser2 uid=1009(user2)gid=1009(user2)groups=1009(user2) #iduser3 uid=1010(user3)gid=1010(user3)groups=1010(user3)
我可以看到这个组中没有关联的用户。
#getentgroupmygroup mygroup:x:1012: #getentgroupmygroup1 mygroup1:x:1013:
方法1:使用usermod命令
usermod命令修改系统帐户文件,以反映命令行上指定的更改。
如何使用usermod命令将现有的用户添加到次要组或附加组?
要将现有用户添加到辅助组,请使用带有-g选项和组名称的usermod命令。
语法:
#usermod[-G][GroupName][UserName]
如果系统中不存在给定的用户或组,你将收到一条错误消息。如果没有得到任何错误,那么用户已经被添加到相应的组中。
#usermod-a-Gmygroupuser1
让我使用id命令查看输出。是的,添加成功。
#iduser1 uid=1008(user1)gid=1008(user1)groups=1008(user1),1012(mygroup)
如何使用usermod命令将现有的用户添加到多个次要组或附加组?
要将现有用户添加到多个次要组中,请使用带有-G选项的usermod命令和带有逗号分隔的组名称。
语法:
#usermod[-G][GroupName1,GroupName2][UserName]
在本例中,我们将把user2添加到mygroup和mygroup1中。
#usermod-a-Gmygroup,mygroup1user2
让我使用id命令查看输出。是的,user2已成功添加到myGroup和myGroup1中。
#iduser2 uid=1009(user2)gid=1009(user2)groups=1009(user2),1012(mygroup),1013(mygroup1)
如何改变用户的主要组?
要更改用户的主要组,请使用带有-g选项和组名称的usermod命令。
语法:
#usermod[-g][GroupName][UserName]
我们必须使用-g改变用户的主要组。
#usermod-gmygroupuser3
让我们看看输出。是的,已成功更改。现在,显示user3主要组是mygroup而不是user3。
#iduser3 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-Muser1mygroup
让我使用id命令查看输出。是的,user1已成功添加到mygroup中。
#iduser1 uid=1008(user1)gid=1008(user1)groups=1008(user1),1012(mygroup)
如何使用gpasswd命令添加多个用户到次要组或附加组中?
要将多个用户添加到辅助组中,请使用带有-M选项和组名称的gpasswd命令。
语法:
#gpasswd[-M][UserName1,UserName2][GroupName]
在本例中,我们将把user2和user3添加到mygroup1中。
#gpasswd-Muser2,user3mygroup1
让我使用getent命令查看输出。是的,user2和user3已成功添加到myGroup1中。
#getentgroupmygroup1 mygroup1:x:1013:user2,user3
如何使用gpasswd命令从组中删除一个用户?
要从组中删除用户,请使用带有-d选项的gpasswd命令以及用户和组的名称。
语法:
#gpasswd[-d][UserName][GroupName]
在本例中,我们将从mygroup中删除user1。
#gpasswd-duser1mygroup Removinguseruser1fromgroupmygroup
方法3:使用Shell脚本
基于上面的例子,我知道usermod命令没有能力将多个用户添加到组中,可以通过gpasswd命令完成。但是,它将覆盖当前与组关联的现有用户。
例如,user1已经与mygroup关联。如果要使用gpasswd命令将user2和user3添加到mygroup中,它将不会按预期生效,而是对组进行修改。
如果要将多个用户添加到多个组中,解决方案是什么?
两个命令中都没有默认选项来实现这一点。
因此,我们需要编写一个小的shell脚本来实现这一点。
如何使用gpasswd命令将多个用户添加到次要组或附加组?
如果要使用gpasswd命令将多个用户添加到次要组或附加组,请创建以下shell脚本。
创建用户列表。每个用户应该在单独的行中。
$catuser-lists.txt user1 user2 user3
使用以下shell脚本将多个用户添加到单个次要组。
vigroup-update.sh #!/bin/bash foruserin`catuser-lists.txt` do usermod-a-Gmygroup$user done
设置group-update.sh文件的可执行权限。
#chmod+group-update.sh
最后运行脚本来实现它。
#shgroup-update.sh
让我看看使用getent命令的输出。是的,user1、user2和user3已成功添加到mygroup中。
#getentgroupmygroup mygroup:x:1012:user1,user2,user3
如何使用gpasswd命令将多个用户添加到多个次要组或附加组?
如果要使用gpasswd命令将多个用户添加到多个次要组或附加组中,请创建以下shell脚本。
创建用户列表。每个用户应该在单独的行中。
$catuser-lists.txt user1 user2 user3
创建组列表。每组应在单独的行中。
$catgroup-lists.txt mygroup mygroup1
使用以下shell脚本将多个用户添加到多个次要组。
#!/bin/sh foruserin`moreuser-lists.txt` do forgroupin`moregroup-lists.txt` do usermod-a-G$group$user done
设置group-update-1.sh文件的可执行权限。
#chmod+xgroup-update-1.sh
最后运行脚本来实现它。
#shgroup-update-1.sh
让我看看使用getent命令的输出。是的,user1、user2和user3已成功添加到mygroup中。
#getentgroupmygroup mygroup:x:1012:user1,user2,user3
此外,user1、user2和user3已成功添加到mygroup1中。
#getentgroupmygroup1 mygroup1:x:1013:user1,user2,user3
方法4:在Linux中将用户添加到组中的手动方法
我们可以通过编辑/etc/group文件手动将用户添加到任何组中。
打开/etc/group文件并搜索要更新用户的组名。最后将用户更新到相应的组中。
#vi/etc/group
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。