Bu grup adının grup kimliği nedir?


27

Grup kimliğini alan grup kimliğini alma.

Çıktı örneğin:

Group adm with GID=4

Yanıtlar:


41

Kullanım getentyerine elle okuma, işleme grupları ve kullanıcı bilgisi için komutu /etc/passwd, /etc/groupsvb kendisi kullanan sistem /etc/nsswitch.confo kendi bilgi alır ve dosyalarda ayarları diğer kaynaklar tarafından geçersiz kılınmış olabilir yere karar vermek için. getentbu konfigürasyona uyar. getentKaynak ne olursa olsun, dosyalarla aynı biçimde veri yazdırır, böylece çıktıyı ayrıştırdığınız gibi ayrıştırabilirsiniz /etc/passwd:

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

Bir kullanıcı adı için bunun daha kolay olduğunu unutmayın. Kullanım id:

$ id -u lightdm
105

Tamam, = ' awkden kısa; perl)
AB

20

Bu sadece ile yapılabilir cut:

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

getent group sudosudogrup ile ilgili satırı /etc/groupdosyadan alır:

$ getent group sudo
sudo:x:27:foobar

Öyleyse, sınırlandırılmış üçüncü alanı alabiliriz :.

Çıktı dizesini buna göre istiyorsanız, içinde komut ikameini kullanın 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, lütfen biraz daha genel =)
AB

1
Neden işlem değişikliği? Neyin var GID="$(getent group cdrom | cut -d: -f3)"?
kos

@kos Bir zorunluluk olmadıkça
denizaltılarda

@AB Düzenlendi ...
heemayl

Ama POSIX ...: '(Hayır, sadece şaka yapıyorum, farkı gerçekten bilmiyordum. +1
kos

1

daha karmaşık cevaplar her zaman takdir edilmektedir - onları dürüstçe okumaktan çok şey öğreniyorum.

Bu sayfaya geldim, çünkü posta grubumun grup kimliğini arıyordum ve bu bilgilerin nerede depolandığını bilmiyordum.

cevapların harika - işte geldiğim basit cevap

def @ fourof4: / home $ kedisi / etc / grubu | grep mail

posta: x: 8:

Kimliği çözmediğini biliyorum ama amacımı yerine getirdi.

Blockquote Bunu deneyin: awk -F: '/ sudo / {"Grup" $ 1 "i GID =" $ 3}' / etc / group ile yazdırın - AB 23 Haziran 15 'te 15:51 Blockquote

Bunu alıntı yaptığımın yanı sıra bahsettiğimi de gördüm .... herkes aşkımı alır - seni özlediysem özür dilerim

beni bu dosyaya yönlendiren buydu.
Teşekkürler ve beni mükemmel bir şekilde istediğiniz şekilde beslemeye devam edin! def


0

perlTek astar kullanarak :

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

veya daha kısa (ve daha iyi)

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

2
Oldukça eminim perl sizin için bölmeyi yapabilir, bence -Fya da -lseçenek bunu yapar.
muru

0

İhtiyaç duyulan bir hack: (hala çok daha iyi bir cevap olabilir)

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

Basit versiyon (@ab için teşekkürler):

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

Örnek:

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

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

Bkz UUOC
kos
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.