2021-05-12 14:32:11
在 Linux 中檢視所有的使用者組
在 Linux 中,組是使用者的集合。這些組的主要目的是為給定資源定義一組許可權,如讀取,寫入或執行許可權,這些許可權可以在組內的使用者之間共用。還可以可以將使用者新增到現有的使用者組以利用其授予的許可權。
本教學介紹在 Linux 中如何顯示使用者所屬的所有組。我們還將解釋如何列出組中的所有成員。
Linux組
使用者可以屬於兩種型別的組:
- 主要或登入組 - 是分配給使用者建立的檔案的組。通常,主組的名稱與使用者的名稱相同。每個使用者必須屬於一個主要組。
- 輔助組或補充組 - 用於向一組使用者授予某些特權。使用者可以是零個或多個輔助組的成員。
列出使用者所屬的所有組
有多種方法可以找出使用者所屬的組。
主使用者的組儲存在 /etc/passwd 檔案中,補充組(如果有)列在 /etc/group 檔案中。
找到使用者群的一種方法是使用 cat , less 或 grep 這些命令列出這些檔案的內容。另一個更簡單的選擇是使用一個命令,其目的是提供有關系統使用者和組的資訊。
使用 groups 命令
最常用的列出使用者所屬的所有組的命令是 groups 命令。在沒有引數的情況下執行時,該命令將列印當前登入使用者所屬的所有組的列表:
groups
第一組是主要組。
linuxidc adm cdrom sudo dip plugdev lpadmin sambashare
要獲取特定使用者所屬的所有組的列表,請將該使用者名稱作為 groups 的引數提供:
groups linuxidc
與第一組是主要組之前相同。
linuxidc : linuxidc adm cdrom sudo dip plugdev lpadmin sambashare
使用 id 命令
該 id 命令列印有關指定使用者及其組的資訊。如果省略使用者名稱,則顯示當前使用者的資訊。
例如,要獲取有關使用者 linuxidc 的資訊,請鍵入:
id linuxidc
該命令將顯示使用者名稱 (uid) ,使用者的主要組 (gid) 和使用者的輔助組 (groups)
uid=1000(linuxidc) gid=1000(linuxidc) 組=1000(linuxidc),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
要僅列印使用者和組名稱而不列印使用者 ID 和組 ID ,請使用該 -n 選項。選項 -g 將僅列印主要組, 選項 -G 列印所有組。
以下命令將列印當前使用者所屬組的名稱:
id -nG
linuxidc adm cdrom sudo dip plugdev lpadmin sambashare
列出組的所有成員
要列出組的所有成員,請使用 getent group 命令後跟組名。
例如,要查詢具有該名稱的組的成員, developers 請使用以下命令:
linuxidc@linuxidc:~/www.linuxidc.com$ getent group linuxidc
如果該組存在,該命令將列印該組及其所有成員:
linuxidc:x:1000:
如果沒有輸出則表示該組不存在。如下圖
列出所有組
要檢視系統上存在的所有組,只需開啟該 /etc/group 檔案即可。此檔案中的每一行代表一個組的資訊。
less /etc/group
另一個選項是使用 getent 命令顯示 /etc/nsswitch.conf 檔案中設定的 group 資料庫中的條目,包括可用於查詢所有組列表的資料庫。
要獲取所有組的列表,請鍵入以下命令:
getent group
輸出與顯示 /etc/group 檔案內容時的輸出相同。如果使用 LDAP 進行使用者身份驗證, getent 則將顯示 /etc/group 檔案和 LDAP 資料庫中的所有組。
您還可以使用 awk 或 cut 僅列印包含組名稱的第一個欄位:
getent group | awk -F: '{ print $1}'
getent group | cut -d: -f1
結論
在本教學中,您學習了如何查詢使用者所屬的組。相同的命令適用於任何 Linux 發行版,包括 Ubuntu , CentOS , RHEL , Debian 和 Linux Mint 。
相關文章