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
命令可以在多個組身份之間切換。