linux查看群组所属用户,linux 列出用户所属的所有群组的5种方法
列出用戶所屬的所有群組的5種方法
在研究5種方法之前,讓我們首先了解一些基本知識:
將用戶添加到現(xiàn)有組是Linux管理員的典型任務(wù)之一。
群組是用戶的集合。群組的主要目的是為群組中的成員定義一組特權(quán)。
如果要為一組沒有組的多個用戶分配一組特權(quán),這可能是一項艱巨的任務(wù)。這是該小組派上用場的地方。
/ etc / passwd文件中列出了所有系統(tǒng)用戶,/ etc / group文件中列出了組,而實際密碼存儲在/ etc / shadow文件中。
無論我們使用什么命令,它都會從這些文件中獲取信息。
Linux中有兩種類型的組:
初級組
中學(xué)組
什么是小學(xué)組?
主要組是與用戶帳戶關(guān)聯(lián)的主要組。每個用戶必須是單個主要組的成員。
什么是中學(xué)組?
次要或補(bǔ)充組用于向用戶授予其他權(quán)限。每個用戶都可以成為多個輔助組的成員。
什么是/ etc / passwd文件
“ / etc / passwd”是一個文本文件,其中包含登錄Linux系統(tǒng)所需的每個用戶信息。它維護(hù)有關(guān)用戶的有用信息,例如用戶名,密碼,用戶ID,組ID,用戶信息,主目錄和Shell。
密碼文件中的每個用戶配置文件都是一行,其中包含七個字段,如下所示:
$ grep "daygeek" /etc/passwd
daygeek:x:1000:1000:daygeek,,,:/home/daygeek:/bin/bash
什么是/ etc / group文件
“ / etc / group”是一個文本文件,用于定義用戶所屬的組。我們可以在同一組中添加多個用戶。
Linux具有三個權(quán)限級別,這些權(quán)限級別定義了用戶如何訪問它。這些級別是 user,group和others,它們控制一個用戶對其他用戶的文件和文件夾的訪問。
/ etc / group文件維護(hù)有關(guān)組的有用信息,例如組名,組密碼,組ID(GIT)和成員資格列表。每個組的詳細(xì)信息在一行中顯示為四個字段,如下面列出的“方法5”所示。
以下七個命令將幫助您找出Linux中用戶所屬的組。
groups:顯示組中的所有成員。
id:打印指定用戶名的用戶和組信息。
lid or libuser-lid:它顯示用戶的組或組的用戶。
getent:從名稱服務(wù)交換庫中獲取條目。
compgen:compgen是bash內(nèi)置命令,它將為用戶顯示所有可用命令。
members:列出組的成員。
/etc/group file 同樣,我們可以從/ etc / group文件中g(shù)rep相應(yīng)的用戶組。
現(xiàn)在,讓我們深入研究5種方法,這些方法可用于查找用戶在Linux中所屬的組的列表:
方法1:使用組命令
Linux管理員廣泛使用’groups’命令列出用戶所屬的所有組。它將打印給定用戶的主要和補(bǔ)充組的信息,如下所示:
$ groups daygeek
daygeek : daygeek adm cdrom sudo dip plugdev lpadmin sambashare
運行不帶任何參數(shù)的“ groups”命令以顯示與當(dāng)前用戶關(guān)聯(lián)的組列表,如下所示:
$ groups
daygeek adm cdrom sudo dip plugdev lpadmin sambashare
方法2:使用id命令
id命令代表身份。它打印出真實有效的用戶,組和補(bǔ)充組信息,例如用戶名,UID,組名和GUID,如下所示:
$ 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”命令以查看有關(guān)當(dāng)前用戶的組信息,如下所示:
$ id
uid=1000(daygeek) gid=1000(daygeek) groups=1000(daygeek),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare)
方法3:使用lid命令
lid或libuser-lid命令顯示有關(guān)包含用戶名的組的信息,這需要sudo特權(quán)。
$ sudo libuser-lid daygeek
adm(gid=4)
cdrom(gid=24)
sudo(gid=27)
dip(gid=30)
plugdev(gid=46)
lpadmin(gid=116)
daygeek(gid=1000)
sambashare(gid=126)
您應(yīng)該在較新的系統(tǒng)上運行l(wèi)ibuser-lid命令而不是lid。
方法4:使用getent命令
getent命令顯示名稱服務(wù)交換機(jī)庫支持的數(shù)據(jù)庫中的條目,這些數(shù)據(jù)庫在“ /etc/nsswitch.conf”中配置:
$ getent group | grep daygeek
adm:x:4:syslog,daygeek
cdrom:x:24:daygeek
sudo:x:27:daygeek,2gadmin
dip:x:30:daygeek
plugdev:x:46:daygeek
lpadmin:x:116:daygeek
daygeek:x:1000:
sambashare:x:126:daygeek
上面的命令顯示了組名以及與該組關(guān)聯(lián)的所有其他成員。使用以下自定義的命令格式可以僅打印給定用戶的組:
$ getent group | grep daygeek | awk -F: '{print $1}'
adm
cdrom
sudo
dip
plugdev
lpadmin
daygeek
sambashare
運行以下命令,僅打印用戶的主要組信息:
$ getent group daygeek
daygeek:x:1000:
方法5:使用“ / etc / group”文件
可以使用grep命令從“ / etc / group”文件中過濾用戶組信息,如下所示:
$ grep daygeek /etc/group
adm:x:4:syslog,daygeek
cdrom:x:24:daygeek
sudo:x:27:daygeek,2gadmin
dip:x:30:daygeek
plugdev:x:46:daygeek
lpadmin:x:116:daygeek
daygeek:x:1000:
sambashare:x:126:daygeek
使用以下自定義的命令格式可以僅打印給定用戶的組:
$ grep daygeek /etc/group | awk -F: '{print $1}'
adm
cdrom
sudo
dip
plugdev
lpadmin
daygeek
sambashare
提示1:使用compgen命令找出所有組
Compgen是bash內(nèi)置命令,顯示Linux系統(tǒng)中的所有組:
$ compgen -g
root
daemon
bin
sys
adm
.
.
daygeek
thanu
renu
sudha
admin
u1
u2
提示2:使用member命令列出組中的成員
該成員的命令可以讓你在Linux中的一組列表成員:
$ members sudo
daygeek 2gadmin
開心洋蔥 , 版權(quán)所有丨如未注明 , 均為原創(chuàng)丨未經(jīng)授權(quán)請勿修改 , 轉(zhuǎn)載請注明linux 列出用戶所屬的所有群組的5種方法!
總結(jié)
以上是生活随笔為你收集整理的linux查看群组所属用户,linux 列出用户所属的所有群组的5种方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言小学生四则运算出题_C语言随机10
- 下一篇: Linux用户与群组管理