web-dev-qa-db-ja.com

redhatでgidを使用してグループをリストする方法は?

私は最初に以下を使用してグループをリストしました:

groups 

を使用してグループを追加しました

groupadd -g 300 oinstall
groupadd –g 500 dba

そして私がするとき

groups 
root bin daemon sys adm disk wheel sfcb

追加したグループが見つかりません。グループIDでグループをリストする方法は?また、もう一度追加しようとすると、グループがすでに存在していると表示されます。

42
kinkajou

groupsコマンドは、ユーザーが現在メンバーになっているグループをリストします。システムで使用可能なすべてのグループではありません。 getentコマンドを使用して、名前またはgidでグループを検索できます。

getent group oinstall
getent group 500

すべてのグループを表示するには、検索クエリをコマンドから外します。

getent group
68
jordanm

getentを使用してグループをリストするか、存在しない場合は/etc/groupを調べます。

コマンドを実行すると、GIDは出力の3番目の値になります。例:

$ getent group
man:x:15:
audio:x:63:
nobody:x:99:
users:x:100:
<--snipped-->
utmp:x:22:

したがって、グループ名とそのGIDのみをリストするには、awkを使用して、次のように必要な列を出力します。

$ getent group | awk -F ":" '{ print $1,$3 }'
man 15
audio 63
nobody 99
users 100
<--snipped-->
utmp 22

参照 http://man7.org/linux/man-pages/man1/getent.1.html

getentが存在しない場合。

$ grep $group /etc/group

GIDは出力の3番目の値です。例えば

$ grep users /etc/group
users:x:100:

上記では、グループusersのGIDは100です。グループ名とGIDのみを取得するには、awkとgrepを次のように使用できます。

$ cat /etc/group | awk -F ":" '{ print $1,$3 }' 
man 15
audio 63
nobody 99
users 100
<--snipped-->
utmp 22

外部認証(LDAPなど)を使用するようにセットアップされたシステムの場合、すべてのグループが/ etc/groupファイルに存在しないことに注意してください。参照 http://www.cyberciti.biz/faq/understanding-etcgroup-file/

9
M_dk