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