首頁 > 軟體

在 Linux 中檢視所有的使用者組

2020-06-16 16:33:45

在 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 發行版,包括 UbuntuCentOS , RHEL , Debian 和 Linux Mint 。


IT145.com E-mail:sddin#qq.com