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