जवाबों:
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
यह बस के साथ किया जा सकता है cut
:
$ cut -d: -f3 < <(getent group sudo)
27
getent group sudo
फ़ाइल sudo
से समूह के बारे में लाइन मिल जाएगी /etc/group
:
$ getent group sudo
sudo:x:27:foobar
तब हम केवल तीसरे क्षेत्र को सीमांकित कर सकते हैं :
।
यदि आप तदनुसार उत्पादन स्ट्रिंग चाहते हैं, तो कमांड प्रतिस्थापन का उपयोग करें 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
, कृपया थोड़ा और सामान्य =)
GID="$(getent group cdrom | cut -d: -f3)"
?
अधिक जटिल जवाब हमेशा सराहना की जाती है - मैं उन्हें बहुत ईमानदारी से पढ़ने से सीखता हूं।
मैं इस पेज पर आया क्योंकि मैं अपने मेल ग्रुप की ग्रुप आईडी की तलाश कर रहा था, और इस बात से अनजान था कि वह जानकारी कहाँ संग्रहीत थी।
आपके उत्तर बहुत अच्छे हैं - यहाँ वह सरल है जिसके साथ मैं आया था
def @ fourof4: / घर $ बिल्ली / आदि / समूह | grep मेल
मेल: एक्स: 8:
मुझे पता है कि यह आईडी को क्रमबद्ध नहीं करता है, लेकिन इसने मेरा उद्देश्य पूरा किया।
Blockquote यह आज़माएँ: awk -F: '/ sudo / {print "Group" $ 1 "के साथ GID =" $ 3} "/ etc / group - AB Jun 23 '15 15:51 पर ब्लॉकक्वाटे
मैं यह भी उल्लेख के अलावा एक मैं उद्धृत के रूप में उल्लेख किया है .... हर कोई मेरे प्यार हो जाता है - माफ करना अगर मैं तुम्हें याद किया
यह मुझे उस फ़ाइल के लिए निर्देशित करता है।
धन्यवाद और मुझे आप चाहते हैं किसी भी रूप में उत्कृष्ट खिलाने के लिए! डीईएफ़
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
-F
या -l
विकल्प ऐसा करता है।
जरूरत के लिए एक हैक: (अभी भी शायद बेहतर जवाब है)
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
awk -F\: '/sudo/ {print "Group " $1 " with GID=" $3}' /etc/group
awk
से छोटा हैperl