『学了就忘』Linux用户管理 — 52、用户组管理相关命令
目录
						
							
						
						
						
						
						
					- 1、添加用户组
- 2、删除用户组
- 3、把用户添加进组或从组中删除
- 4、有效组(了解)
1、添加用户组
添加用户组的命令是groupadd。
命令格式如下:
[root@localhost ~]# groupadd [选项] 组名
选项:
- -g:GID。指定组ID。(一般不会用)
添加用户组的命令比较简单,举个例子:
# 添加group1组
[root@localhost ~]# groupadd group1
# 查看用户组是否创建
[root@localhost ~]# grep "groupl" /etc/group
group1:x:502:
2、删除用户组
groupdel命令用于删除用户组。
命令格式如下:
[root@localhost ~]# groupdel 组名
例子:
# 删除group1组
[root@localhost ~]# groupdel group1
不过大家要注意,要删除的组不能是其他用户的初始组,也就是说这个组中没有初始用户才可以删除。如果组中都是附加用户,则删除组时不受影响。
3、把用户添加进组或从组中删除
gpasswd命令是用来设定组密码并指定组管理员的,不过我们在前面已经说了,组密码和组管理员功能很少使用,而且完全可以被sudo命令取代,所以gpasswd命令现在主要用于把用户添加进组或从组中删除。
命令格式如下:
[root@localhost ~]# gpasswd [选项] 组名
选项:
- -a用户名:把用户加入组
- -d用户名:把用户从组中删除
举个例子:
# 添加组grouptest
[root@localhost ~]# groupadd grouptest
# 把用户user1加入grouptest组
[root@localhost ~]# gpasswd -a user1 grouptest 
Adding user user1 to group grouptest
# 查看一下,user1用户已经作为附加用户加入grouptest组
[root@localhost ~]# grep "user1" /etc/group 
user1:x:501:
grouptest:x:505:user1
# 把用户user1从组中删除
[root@localhost ~]# gpasswd -d user1 
grouptest Removing user userl from group grouptest
# 组中没有user1用户了
[root@localhost ~]# grep "grouptest" /etc/group 
grouptest:x:505:
说明:
之前我们说过,使用usermod命令可以把用户加入某个组,那usermod命令和gpasswd命令有什么区别?
- usermod命令的操作对象是用户,命令是- usermod -G grouptest user1,把用户名作为参数放在最后(也就是- grouptest是组,- user1是用户);而- gpasswd命令的操作对象是组,命令是- gpasswd-a user1 grouptest,把组名作为参数放在最后(- user1是用户,- grouptest是组,和- usermod命令位置相反)。
- usermod命令和- gpasswd命令,理论上用哪一个都可以,推荐使用- gpasswd命令,原因- gpasswd命令只添加附加组,而- usermod命令根据不同的选项可以添加初始组和附加组。
- gpasswd命令不但能把用户添加进附加组中,而且- gpasswd命令还有从组中删除用户的功能。- gpasswd命令更为方便。
提示:用vim编辑器,手动编辑也是可以的,同样效果。只是手工写的方式不适合做脚本。
注意:在删除组的时候,如果组中有没有初始组的用户(也就是把当前组作为初始组的用户),需要把该用户删除掉,才能把该用户组删除。
4、有效组(了解)
我们说过,每个用户可以有一个初始组(用户是这个组的初始用户),也可以属于多个附加组。既然用户可以属于这么多用户组,那么用户在创建文件后,默认生效的组身份是哪个呢?
当然是初始用户组的组身份生效了,因为初始组是用户一旦登录就直接获得的组身份。也就是说,用户在创建文件后,文件的属组是用户的初始组,因此用户的有效组默认是初始组。
既然用户属于多个用户组,那么能不能改变用户的有效组呢?
使用命令newgrp就可以切换用户的有效组。
命令格式如下:
[root@localhost ~]# newgrp 组名
举个例子:
- 我们已经有了普通用户user1,默认会建立user1用户组,user1组是user1用户的初始组。我们再把user1用户加入group1组,那么group1组就是user1用户的附加组。
- 当user1用户创建文件test1时,test1文件的属组是user1组,因为user1组是user1用户的有效组。通过newgrp命令就可以把user1用户的有效组变成group1组。
- 当user1用户创建文件test2时,就会发现test2文件的属组就是group1组。使用newgrp命令可以在多个组身份之间切换。