如何找出 Linux 中的某個群組中有哪些使用者?

如何找出 Linux 中的某個群組中有哪些使用者?

我最近一直在創建新用戶並將他們分配到某些群組。我想知道是否有一個命令可以顯示分配給某個群組的所有使用者?我嘗試過使用“groups”命令,但是每當我使用此命令時,它都會顯示“groups:找不到”

答案1

我更喜歡使用獲取指令 ...

由於 getent 使用與系統相同的名稱服務,因此 getent 將顯示所有信息,包括從 LDAP 等網路資訊來源獲得的資訊。

因此,對於一個團體,您應該使用以下...

getent group name_of_group

在哪裡組名替換為您要尋找的群組。請注意,這僅會傳回補充組成員身份,不包括將此群組作為主要群組的使用者。

您還可以執行許多其他查找...這passwd是另一個有用的查找,您需要列出主要群組。

答案2

您可以使用 grep:

grep '^group_name_here:' /etc/group

這僅列出補充組成員身份,而不列出將此組作為主要組的用戶。而且它只能尋找本機群組,而不是來自 LDAP 等網路服務的群組。

答案3

更容易做groups [username]

如果您想列出所有本地用戶及其本地群組,您可以這樣做

cat /etc/passwd | awk -F':' '{ print $1}' | xargs -n1 groups

如果您收到“群組:找不到命令”,則很可能您已將環境路徑編輯得更糟,要重置路徑,請執行以下操作PATH=$(getconf PATH)

答案4

groups指令列印使用者的群組成員身分。您可以使用lid命令列出群組中的用戶,例如:

# lid -g <groupname>

更新:在基於 Debian 的發行版上,指令名稱不同於libuser-lid.libuser正如 @chris-down 所提到的,這兩個命令都是由套件提供的。

$ sudo libuser-lid -g lpadmin
kadir(uid=xxxx)

相關內容