Linux中國

如何在 Linux 上檢查用戶所屬組

將用戶添加到現有組是 Linux 管理員的常規活動之一。這是一些在大環境中工作的管理員的日常活動。

甚至我會因為業務需求而在我的環境中每天都在進行這樣的活動。它是幫助你識別環境中現有組的重要命令之一。

此外,這些命令還可以幫助你識別用戶所屬的組。所有用戶都列在 /etc/passwd 中,組列在 /etc/group 中。

無論我們使用什麼命令,都將從這些文件中獲取信息。此外,每個命令都有其獨特的功能,可幫助用戶單獨獲取所需的信息。

什麼是 /etc/passwd?

/etc/passwd 是一個文本文件,其中包含登錄 Linux 系統所必需的每個用戶信息。它維護有用的用戶信息,如用戶名、密碼、用戶 ID、組 ID、用戶 ID 信息、家目錄和 shell。passwd 每行包含了用戶的詳細信息,共有如上所述的 7 個欄位。

$ grep "daygeek" /etc/passwd
daygeek:x:1000:1000:daygeek,,,:/home/daygeek:/bin/bash

什麼是 /etc/group

/etc/group 是一個文本文件,用於定義用戶所屬的組。我們可以將多個用戶添加到單個組中。它允許用戶訪問其他用戶文件和文件夾,因為 Linux 許可權分為三類:用戶、組和其他。它維護有關組的有用信息,例如組名、組密碼,組 ID(GID)和成員列表。每個都在一個單獨的行。組文件每行包含了每個組的詳細信息,共有 4 個如上所述欄位。

這可以通過使用以下方法來執行。

  • groups: 顯示一個組的所有成員。
  • id: 列印指定用戶名的用戶和組信息。
  • lid: 顯示用戶的組或組的用戶。
  • getent: 從 Name Service Switch 庫中獲取條目。
  • grep: 代表「 全局正則表達式列印 global regular expression print 」,它能列印匹配的模式。

什麼是 groups 命令?

groups 命令列印每個給定用戶名的主要組和任何補充組的名稱。

$ groups daygeek
daygeek : daygeek adm cdrom sudo dip plugdev lpadmin sambashare

如果要檢查與當前用戶關聯的組列表。只需運行 groups 命令,無需帶任何用戶名。

$ groups
daygeek adm cdrom sudo dip plugdev lpadmin sambashare

什麼是 id 命令?

id 代表 「 身份 identity 」。它列印真實有效的用戶和組 ID。列印指定用戶或當前用戶的用戶和組信息。

$ id daygeek
uid=1000(daygeek) gid=1000(daygeek) groups=1000(daygeek),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare)

如果要檢查與當前用戶關聯的組列表。只運行 id 命令,無需帶任何用戶名。

$ id
uid=1000(daygeek) gid=1000(daygeek) groups=1000(daygeek),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare)

什麼是 lid 命令?

它顯示用戶的組或組的用戶。顯示有關包含用戶名的組或組名稱中包含的用戶的信息。此命令需要管理員許可權。

$ sudo lid daygeek
 adm(gid=4)
 cdrom(gid=24)
 sudo(gid=27)
 dip(gid=30)
 plugdev(gid=46)
 lpadmin(gid=108)
 daygeek(gid=1000)
 sambashare(gid=124)

什麼是 getent 命令?

getent 命令顯示 Name Service Switch 庫支持的資料庫中的條目,它們在 /etc/nsswitch.conf 中配置。

$ getent group | grep daygeek
adm:x:4:syslog,daygeek
cdrom:x:24:daygeek
sudo:x:27:daygeek
dip:x:30:daygeek
plugdev:x:46:daygeek
lpadmin:x:118:daygeek
daygeek:x:1000:
sambashare:x:128:daygeek

如果你只想列印關聯的組名稱,請在上面的命令中使用 awk

$ getent group | grep daygeek | awk -F: '{print $1}'
adm
cdrom
sudo
dip
plugdev
lpadmin
daygeek
sambashare

運行以下命令僅列印主群組信息。

$ getent group daygeek
daygeek:x:1000:

什麼是 grep 命令?

grep 代表 「 全局正則表達式列印 global regular expression print 」,它能列印文件匹配的模式。

$ grep "daygeek" /etc/group
adm:x:4:syslog,daygeek
cdrom:x:24:daygeek
sudo:x:27:daygeek
dip:x:30:daygeek
plugdev:x:46:daygeek
lpadmin:x:118:daygeek
daygeek:x:1000:
sambashare:x:128:daygeek

如果你只想列印關聯的組名稱,請在上面的命令中使用 awk

$ grep "daygeek" /etc/group | awk -F: '{print $1}'
adm
cdrom
sudo
dip
plugdev
lpadmin
daygeek
sambashare

via: https://www.2daygeek.com/how-to-check-which-groups-a-user-belongs-to-on-linux/

作者:Prakash Subramanian 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國