七、增刪群組相關的命令
同樣的我們要先介紹兩個重要的設定檔:/etc/group和/etc/gshadow,前面那個其實和/etc/passwd一樣,而後者就是群組的密碼表了。先看看長啥樣:
root:x:0:
adm:x:4:m,syslog
m:x:1000:
這是截取的/etc/group的一部分,每行被冒號分成四段,第一段是群組名;第二段是密碼; 第三段是gid;第四段就是該組下面的成員了。
我們看到root和m群組第四段是空的,而adm群組的第四段有兩個成員,為什麼會有這種區別呢?原來每個用戶加入的群組分為主要群組和次要群組,主要群組是指用戶賬戶剛建立的時候綁定的那個群組,只要看一下/etc/passwd裡面的第四段就可以知道該用戶的主要群組是哪個,來看用戶m的信息 m:x:1000:1000:m,,,:/home/m:/bin/bash 顯然用戶m的主要群組是m。那麼每個賬戶的名字是不會出現在/etc/group中主要群組的第四段的,因為在某種程度上這是不言而喻或默認的;若某個用戶出現在第四段了,那意味著該群組不是其主要群組。
還有一個概念叫有效群組,雖然一個用戶可以加入多個群組並擁有相應權限,但這是針對已經存在的檔案或目錄而言。若果某用戶要新建一個文件或目錄,那它屬於該用戶的哪個群組呢?答案是有效群組,即此時該用戶所在的那個組。我們知道某一時刻,一個用戶只能在一個組內活動,即使他擁有其他群組的權限。打個比方,一個領導管理三個部門即擁有三個群組的權限,但是每個時刻他只能坐在某一個特定部門的辦公室,卻不能分身同時坐在三個辦公室,即使他擁有另外兩個辦公室的進入權。
用groups命令可以查看當前用戶所屬的所有群組,其中第一個就是該用戶的有效群組。用newgrp命令可以切換有效群組,類似領導要去另一個辦公室。然後又是默認情況,即某用戶一登陸linux時,有效群組是哪個呢?類似於每天領導第一個去的辦公室是哪個?答案是上面的主要群組,在這裡它被稱為初始群組,但無論哪個名字,說的都是/etc/passwd的第四段那個群組。
root:*::
daemon:*::
m:!::
這是截取的/etc/gshadow的一部分,每行也是被冒號分成四段,分別是群組名、密碼、群組管理員、成員。密碼段若是!或*,則表示改組無法登入,即無法用newgrp切換。
增加群組命令
groupadd -g/r groupname -g後面跟gid,加上-r 表示建立的是系統群組,即/etc/gshadow的第二欄會變成星號或歎號。
修改群組命令 :groupmod 類似與usermod,即——groupmod [-g gid] [-n group_name]
刪除群組命令:groupdel groupname ,但是這個命令有些要注意的地方,因為某些情況下會失敗,原因是還有用戶的初始群組是該群組,所以要先解除這種綁定,即修改該用戶在/etc/passwd的gid或直接刪除該用戶。
八、其他命令
1)除了上面的groups可以查看群組的信息外,還有一個id命令,可以查看更多信息,直接在終端輸入id就好,不必加參數。
2)passwd命令 passwd [-lunxwS] username
-l :將 username 這個賬號的密碼鎖住 (lock),在 /etc/shadow 內的密碼欄修訂~
-u :將 -l 的 lock 解開!
-n :後面接天數 (數字) ,最短天數;亦即是 /etc/shadow 內的第四欄;
-x :後面接天數 (數字) ,最長天數;亦即是 /etc/shadow 內的第五欄;
-w :後面接天數 (數字) ,警告天數;亦即是 /etc/shadow 內的第六欄;
-S :顯示目前這個 username 的相關信息。