2021-05-12 14:32:11
Linux組組態檔(/etc/group)詳解
/ect/group 檔案是使用者組組態檔,即使用者組的所有資訊都存放在此檔案中。
此檔案是記錄組 ID(GID)和組名相對應的檔案。前面講過(https://www.linuxidc.com/Linux/2019-05/158718.htm),etc/passwd 檔案中每行使用者資訊的第四個欄位記錄的是使用者的初始組 ID,那麼,此 GID 的組名到底是什麼呢?就要從 /etc/group 檔案中查詢。
/etc/group 檔案的內容可以通過 Vim 看到:
linuxidc@linuxidc:~/linuxidc.com$ vim /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,linuxidc
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
…省略部分輸出…
postdrop:x:131:
linuxmi:x:1001:
linuxidc.com:x:1002:
可以看到,此檔案中每一行各代表一個使用者組。在前面章節中,我們曾建立 linuxmi 使用者,系統預設生成一個 linuxmi 使用者組,在此可以看到,此使用者組的 GID 為 1001,目前它僅作為 linuxmi 使用者的初始組。
各使用者組中,還是以 ":" 作為欄位之間的分隔符,分為 4 個欄位,每個欄位對應的含義為:
組名:密碼:GID:該使用者組中的使用者列表
接下來,分別介紹各個欄位具體的含義。
組名
也就是是使用者組的名稱,有字母或數位構成。同 /etc/passwd 中的使用者名稱一樣,組名也不能重複。
組密碼
和 /etc/passwd 檔案一樣,這裡的 "x" 僅僅是密碼標識,真正加密後的組密碼預設儲存在 /etc/gshadow 檔案中。
不過,使用者設定密碼是為了驗證使用者的身份,那使用者組設定密碼是用來做什麼的呢?使用者組密碼主要是用來指定組管理員的,由於系統中的賬號可能會非常多,root 使用者可能沒有時間進行使用者的組調整,這時可以給使用者組指定組管理員,如果有使用者需要加入或退出某使用者組,可以由該組的組管理員替代 root 進行管理。但是這項功能目前很少使用,我們也很少設定組密碼。如果需要賦予某使用者調整某個使用者組的許可權,則可以使用 sudo 命令代替。
組ID (GID)
就是群組的 ID 號,Linux 系統就是通過 GID 來區分使用者組的,同使用者名稱一樣,組名也只是為了便於管理員記憶。
這裡的組 GID 與 /etc/passwd 檔案中第 4 個欄位的 GID 相對應,實際上,/etc/passwd 檔案中使用 GID 對應的群組名,就是通過此檔案對應得到的。
組中的使用者
此欄位列出每個群組包含的所有使用者。需要注意的是,如果該使用者組是這個使用者的初始組,則該使用者不會寫入這個欄位,可以這麼理解,該欄位顯示的使用者都是這個使用者組的附加使用者。
舉個例子,linuxmi 組的組資訊為 "linuxmi:x:1001:",可以看到,第四個欄位沒有寫入 linuxmi 使用者,因為 linuxmi 組是 linuxmi 使用者的初始組。如果要查詢這些使用者的初始組,則需要先到 /etc/passwd 檔案中檢視 GID(第四個欄位),然後到 /etc/group 檔案中比對組名。
每個使用者都可以加入多個附加組,但是只能屬於一個初始組。所以我們在實際工作中,如果需要把使用者加入其他組,則需要以附加組的形式新增。例如,我們想讓 linuxmi 也加入 root 這個群組,那麼只需要在第一行的最後一個欄位加入 linuxmi,即 root:x:0:linuxmi 就可以了。
一般情況下,使用者的初始組就是在建立使用者的同時建立的和使用者名稱相同的組。
到此,我們已經學習了/etc/passwd、/etc/shadow、/etc/group,它們之間的關係可以這樣理解,即先在 /etc/group 檔案中查詢使用者組的 GID 和組名;然後在 /etc/passwd 檔案中查詢該 GID 是哪個使用者的初始組,同時提取這個使用者的使用者名稱和 UID;最後通過 UID 到 /etc/shadow 檔案中提取和這個使用者相匹配的密碼。
相關文章