Linux中把⽤户添加到组的4个⽅法总结
前⾔
Linux 组是⽤于管理 Linux 中⽤户帐户的组织单位。对于 Linux 系统中的每⼀个⽤户和组,它都有惟⼀的数字标识号。它被称为⽤户 ID(UID)和组 ID(GID)。组的主要⽬的是为组的成员定义⼀组特权。它们都可以执⾏特定的操作,但不能执⾏其他操作。
Linux 中有两种类型的默认组。每个⽤户应该只有⼀个主要组 primary group 和任意数量的次要组 secondary group 。• 主要组:创建⽤户帐户时,已将主要组添加到⽤户。它通常是⽤户的名称。在执⾏诸如创建新⽂件(或⽬录)、修改⽂件或执⾏命令等任何操作时,主要组将应⽤于⽤户。⽤户的主要组信息存储在 /etc/passwd ⽂件中。
• 次要组:它被称为次要组。它允许⽤户组在同⼀组成员⽂件中执⾏特定操作。例如,如果你希望允许少数⽤户运⾏Apache(httpd)服务命令,那么它将⾮常适合。
你可能对以下与⽤户管理相关的⽂章感兴趣。
•
•
•
可以使⽤以下四种⽅法实现。
• usermod :修改系统帐户⽂件,以反映在命令⾏中指定的更改。
• gpasswd :⽤于管理 /etc/group 和 /etc/gshadow 。每个组都可以有管理员、成员和密码。
•Shell 脚本:可以让管理员⾃动执⾏所需的任务。
• ⼿动⽅式:我们可以通过编辑 /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 命令将现有的⽤户添加到多个次要组或附加组?
要将现有⽤户添加到多个次要组中,请使⽤带有 -G 选项的 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
让我们看看输出。是的,已成功更改。现在,显⽰ user3 主要组是 mygroup ⽽不是 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]
在本例中,我们将从 mygroup 中删除 user1 。
#gpasswd-d user1 mygroup
Removing user user1from group mygroup
⽅法 3:使⽤ Shell 脚本
基于上⾯的例⼦,我知道 usermod 命令没有能⼒将多个⽤户添加到组中,可以通过 gpasswd 命令完成。但是,它将覆盖当前与组关联的现有⽤户。
例如, user1 已经与 mygroup 关联。如果要使⽤ gpasswd 命令将 user2 和 user3 添加到 mygroup 中,它将不会按预期⽣效,⽽是对组进⾏修改。
如果要将多个⽤户添加到多个组中,解决⽅案是什么?
两个命令中都没有默认选项来实现这⼀点。
因此,我们需要编写⼀个⼩的 shell 脚本来实现这⼀点。
如何使⽤ gpasswd 命令将多个⽤户添加到次要组或附加组?
如果要使⽤ gpasswd 命令将多个⽤户添加到次要组或附加组,请创建以下 shell 脚本。
创建⽤户列表。每个⽤户应该在单独的⾏中。
$
user1
user2
user3
使⽤以下 shell 脚本将多个⽤户添加到单个次要组。
vi group-update.sh
#!/bin/bash
for user in ``
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
如何使⽤ gpasswd 命令将多个⽤户添加到多个次要组或附加组?
如果要使⽤ gpasswd 命令将多个⽤户添加到多个次要组或附加组中,请创建以下 shell 脚本。
创建⽤户列表。每个⽤户应该在单独的⾏中。
$
user1
user2
user3
创建组列表。每组应在单独的⾏中。
$
mygroup
mygroup1
使⽤以下 shell 脚本将多个⽤户添加到多个次要组。
#!/bin/sh
for user in ``
do
for group in ``
do
usermod -a -G $group $user
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 ⽂件并搜索要更新⽤户的组名。最后将⽤户更新到相应的组中。
linux创建新用户和密码# vi /etc/group
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论