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