在 Linux 系統中,群組是一種管理使用者權限及資源訪問的方式,每個使用者都可以屬於一個主要群組和多個附加群組,而這兩種群組的用途各不相同。
本文將介紹主要群組與附加群組之間的差異,以及它們在系統管理中的應用。
主要群組
主要群組是每個使用者在 Linux 系統中的預設群組,當使用者創建文件或執行操作時,這些操作的屬性將歸屬於該主要群組。例如,當使用者創建一個新文件時,該文件的群組屬性會設為這個主要群組。
每個使用者只能有一個主要群組。在創建新使用者帳號時,系統通常會自動建立一個與該使用者同名的群組作為其主要群組。例如,使用者 alice
的主要群組也可能叫做 alice
,這樣該使用者創建的文件就會屬於 alice
群組。
附加群組
與主要群組不同,附加群組是用來為使用者賦予額外訪問權限的。每個使用者可以屬於多個附加群組,這些群組讓使用者能夠訪問其他群組所擁有的資源或文件。
例如,alice
除了擁有主要群組 alice
外,還可能被加入 developers
和 designers
這些附加群組,讓她能夠訪問這些群組擁有的特定專案或資源。附加群組的設置使得權限管理更加靈活,尤其是在多使用者協作的環境中。
如何使用 usermod 命令修改群組
在 Linux 中,可以使用 usermod
命令來修改使用者的群組屬性,其中 -g
和 -G
是兩個常見的參數:
-g
(小寫 g):用來指定使用者的主要群組。
例如:usermod -g groupname username
這條命令會將username
的主要群組改為groupname
。-G
(大寫 G):用來指定使用者的附加群組。
例如:usermod -G group1,group2 username
這條命令會將username
加入group1
和group2
群組。需要注意的是,這樣做會覆蓋使用者目前的所有附加群組。
因此,如果想要保留現有的附加群組並新增新的群組,可以使用-aG
選項:usermod -aG groupname username
這樣可以保留原有的附加群組,並添加新的群組。
如何查看使用者的群組
要查看某使用者所屬的群組,可以使用以下命令:
groups username
這會列出該使用者的主要群組和所有附加群組,方便系統管理員快速了解使用者的權限狀況。
總結
在 Linux 中,主要群組與附加群組各自扮演著不同的角色:
- 主要群組是每個使用者的預設群組,與使用者創建的文件和資源所有權相關。
- 附加群組則提供了更靈活的方式,讓使用者能夠訪問多個群組擁有的資源,便於協作和資源共享。
透過合理地設定主要群組和附加群組,可以更有效地管理系統資源的訪問控制,並提高多使用者環境中的安全性和協作性。