सवाल सभी उपयोगकर्ताओं और उनके समूह / इसके विपरीत दिखाएं


मुझे पता है कि मेरे पास मौजूदा समूह और उपयोगकर्ता हैं लेकिन मुझे उनके सहयोग के बारे में निश्चित नहीं है। क्या कोई शेल कमांड है जिसका उपयोग मैं सभी उपयोगकर्ताओं या सभी समूहों को सूचीबद्ध करने के लिए कर सकता हूं और किसी निर्दिष्ट उपयोगकर्ता / समूह के लिए सभी समूहों / उपयोगकर्ताओं को सूचीबद्ध करने के लिए एक आदेश?

तो कुछ पसंद है showusers सभी उपयोगकर्ताओं की सूची होगी, और showgroups -u thisuser सभी समूहों को दिखाएगा thisuser इस में।


48
2018-01-31 03:42


मूल


ऐसा कोई आदेश नहीं है। आपको इसे स्वयं से स्क्रिप्ट करने की आवश्यकता है। - Chris
कैसा रहेगा cat /etc/passwd - Sudip Bhandari


जवाब:


सभी उपयोगकर्ताओं:

$ getent passwd

सभी समूह:

$ getent group

एक विशिष्ट उपयोगकर्ता के साथ सभी समूह:

$ getent group | grep username

64
2018-01-31 03:45



मैंने पाया कि एक उपयोगकर्ता नाम है speech-dispatcher जो समूह ऑडियो से संबंधित है (के आधार पर groups speech-dispatcher)। लेकिन यह नीचे सूचीबद्ध नहीं है getent group आदेश! समस्या क्या है? - PHP Learner
@PHPLearner यदि आपके पास कोई और सवाल है, तो कृपया एक प्रश्न पोस्ट करें, एक टिप्पणी नहीं। - EEAA
+1 क्योंकि यह परंपरागत में नहीं मिले उपयोगकर्ताओं / समूहों को भी सूचीबद्ध करेगा /etc/passwd और /etc/group फाइलें यानी जब एक सिस्टम केंद्रीय निर्देशिका जैसे एनआईएस और एलडीएपी, या किसी अन्य वैकल्पिक उपयोगकर्ता / समूह डेटाबेस का उपयोग करने के लिए कॉन्फ़िगर किया गया है, जब तक कि उपयोगकर्ता / समूह गणना का समर्थन करता हो। - HBruijn
यदि गणना बंद हो जाती है तो यह सभी उपयोगकर्ताओं और समूहों को ldap या sssd config में वापस नहीं करेगा। - Jens Timmerman


उपयोगकर्ताओं और उनके समूहों की सूची:

for user in $(awk -F: '{print $1}' /etc/passwd); do groups $user; done

सूची समूह और उनके उपयोगकर्ता:

cat /etc/group | awk -F: '{print $1, $3, $4}' | while read group gid members; do
    members=$members,$(awk -F: "\$4 == $gid {print \",\" \$1}" /etc/passwd);
    echo "$group: $members" | sed 's/,,*/ /g';
done

9
2018-01-31 04:33



हालांकि यह शायद काम करेगा, यह थोड़ा अधिक जटिल लगता है, ऐसा नहीं है, जब ऐसा करने के लिए पूरी तरह से सरल एक शॉट कमांड हैं? - EEAA
यह निश्चित रूप से कुछ भी नहीं मिलेगा जो केंद्रीकृत भंडार में रहता है। और यह निश्चित रूप से जानकारी है जिसे आप देखना चाहते हैं। - Magellan
बहुत उपयोगी, यह उल्लेख करना बेहतर होगा कि वे अलग-अलग आदेश हैं। - Mian Asbat Ahmad


सभी उपयोगकर्ताओं की सूची

cut -d':' -f 1 /etc/passwd

या

awk -F ':' '{print $1}' /etc/passwd

जबकि बिल्ली / आदि / passwd सभी उपयोगकर्ताओं को दिखाता है (और अन्य सामान का एक गुच्छा) कट-डी ':' -एफ 1 प्रत्येक पंक्ति को ':' के साथ एक डिलीमीटर के रूप में विभाजित करने और केवल पहले फ़ील्ड (उपयोगकर्ता) निकालने का एक आसान तरीका है। बहुत अजीब संस्करण के समान ही।

सभी समूहों की सूची

cut -d':' -f 1 /etc/group

या

awk -F ':' '{print $1}' /etc/group

अनुमान लगाओ, उपयोगकर्ताओं को सूचीबद्ध करने के लिए बहुत ही समान है। बस पार्स / Etc / समूह बजाय।

एक और दिलचस्प तरीका, शायद ओपी चाहता था के करीब, है compgen। यद्यपि संगतता मुद्दों के बारे में निश्चित नहीं है।

compgen -u
compgen -g

2
2017-09-23 17:48



हाय इलियट बेली, सर्वर फॉल्ट में आपका स्वागत है! कृपया ध्यान दें कि यह प्रश्न 5 साल से अधिक पुराना है, और पहले से ही एक सही और स्वीकार्य उत्तर है। यह भी ध्यान रखें कि आपका समाधान केवल तभी काम करता है जब उपयोगकर्ता / etc / passwd में संग्रहीत होते हैं; स्वीकार्य उत्तर अन्य उपयोगकर्ता डेटाबेस (जैसे एनआईएस या एलडीएपी) के लिए भी काम करता है। यदि आप पुराने प्रश्नों का उत्तर देना चाहते हैं (जो बिल्कुल ठीक है!) तो आप एक नज़र रखना चाहते हैं अनुत्तरित प्रश्नों की सूची - कुछ प्यार की तलाश में बहुत सारे प्रश्न! - marcelm


यदि आप एलडीएपी या एनआईएस जैसे दूरस्थ उपयोगकर्ताओं के बारे में परवाह नहीं करते हैं, उपयोगकर्ताओं और उनके संबंधित समूहों को एक सरल तरीके से सूचीबद्ध करने के लिए:

cut -d: -f1 /etc/passwd | xargs groups

आउटपुट;

root : root
myuser : root www-data fuse 
anotheruser : anotheruser   cdrom floppy audio dip video plugdev scanner bluetooth netdev

2
2017-10-19 05:42



इसमें वही समस्या है जैसे चांग का जवाब यह है कि यह एलडीएपी, एनआईएस इत्यादि जैसे डेटाबेस में उत्पन्न उपयोगकर्ताओं / समूहों को अनदेखा करता है। - MadHatter
हालांकि यह बहुत ही स्पष्ट रूप से स्पष्ट रूप से स्पष्ट प्रारूप में जानकारी को आउटपुट करता है, फिर भी यह एक उपयोगी पहला कदम हो सकता है। इससे / etc / group और / etc / passwd के वाक्यविन्यास के संबंध में मेरी याददाश्त में मदद मिली! - Chris Woods


डेबियन के लिए

cat /etc/passwd # show all users
cat /etc/group # show all groups
cat /etc/passwd | grep group # show all users with specified group

-1
2017-11-30 09:25



पहले से स्वीकृत के विपरीत यह उपयोगकर्ताओं / समूहों को सूचीबद्ध नहीं करता है जो दूरस्थ उपयोगकर्ता डेटाबेस जैसे एलडीएपी, एनआईएस आदि से उत्पन्न होते हैं .... - HBruijn


ऐशे ही:

sudo cat /etc/gshadow |grep group
sudo cat /etc/gshadow |grep username

-2
2017-09-02 20:05



नहीं। /etc/gshadow समूह के सदस्य नहीं हैं (/etc/group करता है) और 4.5 साल पहले से स्वीकृत उत्तर वैसे भी सामान्य है, क्योंकि यह दूरस्थ समूहों को भी संभालता है। - Sven♦


उस विशेष समूह के सभी समूह और उपयोगकर्ताओं को प्राप्त करने के लिए इस आदेश का उपयोग करें।

grep '
> ' /etc/group

-2
2018-02-08 08:21