このグループ名のグループIDは何ですか?


回答:


41

使用するgetent代わりに、手動で読み取りを、グループ及びユーザー情報を処理するためのコマンドを/etc/passwd/etc/groupsシステム自体が使用するなど/etc/nsswitch.conf、それから、その情報を取得する場所を決定すること、およびファイルの設定が他のソースによって上書きされてもよいです。getentこの構成に従います。getentソースに関係なく、ファイルと同じ形式でデータを出力するため、解析と同じ方法で出力を解析できます/etc/passwd

getent group sudo | awk -F: '{printf "Group %s with GID=%d\n", $1, $3}'

ユーザー名については、これがはるかに簡単であることに注意してください。使用id

$ id -u lightdm
105

[OK]を、awkより短いperl)=
AB

20

これは次のようにして簡単に実行できますcut

$ cut -d: -f3 < <(getent group sudo)
27

getent group sudoファイルsudoからグループに関する行を取得し/etc/groupます:

$ getent group sudo
sudo:x:27:foobar

次に、で区切られた3番目のフィールドを取得し:ます。

それに応じて出力文字列が必要な場合は、次の範囲内でコマンド置換を使用しますecho

$ echo "Group sudo with GID="$(cut -d: -f3 < <(getent group sudo))""
Group sudo with GID=27

% echo "Group cdrom with GID="$(cut -d: -f3 < <(getent group sudo))"" Group cdrom with GID=27、もう少し一般的なものにしてください=)
AB

1
プロセス置換の理由 何が問題なのGID="$(getent group cdrom | cut -d: -f3)"ですか?
コス

@kos私は絶対必要でない限り、サブシェルで物事を実行するのは好きではない
.....-heemayl

@AB編集
...-heemayl

。 '(いいえ、冗談、私は本当に違いを知らなかった1:しかし、それはPOSIX ...だ
コス

1

より複雑な答えは常に歓迎されます-私はそれらを非常に正直に読むことから多くを学びます。

メールグループのグループIDを探していて、その情報が保存されている場所を知らなかったため、このページを見つけました。

あなたの答えは素晴らしいです-ここに私が思いついた簡単なものがあります

def @ fourof4:/ home $ cat / etc / group | grepメール

mail:x:8:

私はそれがIDを整理しないことを知っていますが、それは私の目的を果たしました。

Blockquote試してみる:awk -F: '/ sudo / {print "Group" $ 1 "with GID =" $ 3}' / etc / group-AB Jun 23 '15 at 15:51 Blockquote

私は引用したもののほかにこれも言及されていることを見る....誰もが私の愛を得る-あなたがいなくてすみません

これが私をそのファイルに導いたものです。
感謝し、あなたが望むどんな形でも優れたものを私に与え続けてください!def


0

perlワンライナーの使用:

% perl -ne '@elements=(split /:/); printf "Group %s with GID=%s\n",$elements[0],$elements[2]' <<< $(getent group sudo)
Group sudo with GID=27

またはそれより短い(より良い)

% perl -F/:/ -ane 'printf "Group %s with GID=%s\n",$F[0],$F[2]' <<< $(getent group sudo)
Group sudo with GID=27

2
perlがあなたのための分割を行うことができますかなり確信して、私は考える-Fか、-lオプションのことを行います。
ムル

0

必要なものに対するハック:(まだもっと良い答えがあるかもしれません)

awk -F\: '{print "Group " $1 " with GID=" $3}' /etc/group | grep "group-name"

よりシンプルなバージョン(@ABのおかげ):

awk -F\: '/sudo/ {print "Group " $1 " with GID=" $3}' /etc/group 

例:

$ awk -F\: '{print "Group " $1 " with GID=" $3}' /etc/group | grep sudo 
Group sudo with GID=27

1
これを試してください:awk -F\: '/sudo/ {print "Group " $1 " with GID=" $3}' /etc/group
AB

参照UUOC
コス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.