還記得每個使用者在他的 /etc/passwd 裡面的第四欄有所謂的 GID 吧?那個 GID 就是所謂的『初始群組 (initial group) 』!也就是說,當使用者一登入系統,立刻就擁有這個群組的相關權限的意思。 舉例來說,我們上面提到 dmtsai 這個使用者的 /etc/passwd 與 /etc/group 還有 /etc/gshadow 相關的內容如下:
[root@www ~]# usermod -G users dmtsai <==先設定好次要群組
[root@www ~]# grep dmtsai /etc/passwd /etc/group /etc/gshadow
/etc/passwd:dmtsai:x:503:504::/home/dmtsai:/bin/bash
/etc/group:users:x:100:dmtsai <==次要群組的設定
/etc/group:dmtsai:x:504: <==因為是初始群組,所以第四欄位不需要填入帳號
/etc/gshadow:users:::dmtsai <==次要群組的設定
/etc/gshadow:dmtsai:!::
仔細看到上面這個表格,在 /etc/passwd 裡面,dmtsai 這個使用者所屬的群組為 GID=504 ,搜尋一下 /etc/group 得到 504 是那個名為 dmtsai 的群組啦!這就是 initial group。因為是初始群組, 使用者一登入就會主動取得,不需要在 /etc/group 的第四個欄位寫入該帳號的!
但是非 initial group 的其他群組可就不同了。舉上面這個例子來說,我將 dmtsai 加入 users 這個群組當中,由於 users 這個群組並非是 dmtsai 的初始群組,因此, 我必須要在 /etc/group 這個檔案中,找到 users 那一行,並且將 dmtsai 這個帳號加入第四欄, 這樣 dmtsai 才能夠加入 users 這個群組啊。仔細看到上面這個表格,在 /etc/passwd 裡面,dmtsai 這個使用者所屬的群組為 GID=504 ,搜尋一下 /etc/group 得到 504 是那個名為 dmtsai 的群組啦!這就是 initial group。因為是初始群組, 使用者一登入就會主動取得,不需要在 /etc/group 的第四個欄位寫入該帳號的!
那麼在這個例子當中,因為我的 dmtsai 帳號同時支援 dmtsai 與 users 這兩個群組, 因此,在讀取/寫入/執行檔案時,針對群組部分,只要是 users 與 dmtsai 這兩個群組擁有的功能, 我 dmtsai 這個使用者都能夠擁有喔!這樣瞭呼?不過,這是針對已經存在的檔案而言, 如果今天我要建立一個新的檔案或者是新的目錄,請問一下,新檔案的群組是 dmtsai 還是 users ?呵呵!這就得要檢查一下當時的有效群組了 (effective group)。