क्या सभी यूनिक्स समूह के नामों को सूचीबद्ध करने के लिए एक कमांड है? [बन्द है]


615

मुझे पता है /etc/groupकि सभी उपयोगकर्ता समूहों को सूचीबद्ध करने वाली फ़ाइल है।

मैं जानना चाहूंगा कि क्या दुनिया में पढ़ने योग्य /etc/groupफ़ाइल को पार्स करने के बावजूद सभी उपयोगकर्ता समूह नामों को सूचीबद्ध करने के लिए एक सरल आदेश है । मैं एक व्यवस्थापक वेब पेज बनाने के लिए तैयार हूं जो लिनक्स खातों के समूह नामों को सूचीबद्ध करता है।


6
अब तक वह करने की कोशिश की stackoverflow.com/questions/14059916/...
ott--

2
"मैं एक वेब पेज बनाने के लिए तैयार हूं जो लिनक्स उपयोगकर्ताओं को सूचीबद्ध करता है" - आप किस समस्या को हल करने की कोशिश कर रहे हैं? यह ऐसा लगता है जो कुछ सुरक्षा समस्याओं (उपयोगकर्ताओं की सूची को उजागर करने, क्रेडेंशियल्स को उजागर करने) का कारण हो सकता है।

मैं एक सरल उदाहरण देना चाह रहा था। मैं "चालू लिनक्स खातों के नामों को सूचीबद्ध करने के लिए" व्यवस्थापक सिस्टम वेब पेज खोलना चाहूंगा। लिनक्स में मैं एक उपयोगकर्ता को जोड़ने, एक उपयोगकर्ता को निकालने, एक उपयोगकर्ता को बदलने, किसी दिए गए उपयोगकर्ता के समूहों को खोजने के लिए कमांड प्राप्त कर सकता था, लेकिन किसी उपयोगकर्ता को नाम के टुकड़े से खोजने के लिए कोई आदेश नहीं मिला। मुझे लगता है कि सवाल इतना अप्रासंगिक नहीं है। लिनक्स ग्रुप अकाउंट को रीमैबब्रेट करने के लिए मैं केवल इतना ही कर सकता था कि वह 19 वगैरह / etc / group file
cavila

जवाबों:


871

उन सभी स्थानीय समूहों को सूचीबद्ध करने के लिए जिनके पास उपयोगकर्ता हैं, उन्हें इस आदेश का उपयोग करें:

cut -d: -f1 /etc/group | sort

अधिक जानकारी के लिए-> यूनिक्स समूह , कट कमांड , सॉर्ट कमांड


3
हाँ MichaelIT सही है समूह कमांड सभी समूहों को सूचीबद्ध नहीं करता है। मैंने यह इसलिए पूछा क्योंकि सभी समूहों के नामों को सूचीबद्ध करने के लिए समूहों की तरह एक साधारण आदेश है या यहां तक ​​कि एक स्वाइप की तरह अनिश्चित है, तो फ़ाइल स्कैन किए बिना सभी सिस्टम समूहों को सूचीबद्ध करने के लिए [[-a | --all]।
कैविला

1
ठीक है तो अब के लिए जवाब नहीं है। समूह फ़ाइल को फ़िल्टर करने के लिए पाठ संपादन का उपयोग करने की आवश्यकता है।
कैविला

3
"Cut -d: -f1" क्या है?
जेड

5
@zed cutएक अन्य कमांड है जो इनपुट से विशिष्ट कॉलम को निकालता है। यहाँ मैं फ़ील्ड 1 निकाल रहा हूँ, जहाँ खेतों को सीमांकित किया गया है:
Arpit

267

यदि आप चाहते हैं कि सभी समूह सिस्टम से परिचित हों, तो मैं getent groupपार्स करने के बजाय उपयोग करने की सलाह दूंगा /etc/group:

getent group

इसका कारण यह है कि नेटवर्क सिस्टम पर, समूह न केवल /etc/groupफ़ाइल से पढ़ सकते हैं , बल्कि LDAP या येलो पेज के माध्यम से भी प्राप्त किए जा सकते हैं (ज्ञात समूहों की सूची स्थानीय समूह फ़ाइल प्लस समूहों से इन मामलों में LDAP या YP के माध्यम से प्राप्त होती है)।

यदि आप केवल समूह नाम चाहते हैं, जिसका आप उपयोग कर सकते हैं:

getent group | cut -d: -f1

7
कुछ usecases के लिए समूह के नामों की क्रमबद्ध सूची बेहतर हो सकती है:getent group | cut -d: -f1 | sort
user1364368

2
यदि गिने पंक्तियाँ वांछनीय हैं, तो करें getent group | cut -d: -f1 | sort | cat -n
MLC

LDAP जैसे नेटवर्क सिस्टम के लिए बढ़िया बिंदु!
माज़ियार

50

Linux, macOS और Unix पर उन समूहों को प्रदर्शित करने के लिए जिन्हें आप संबंधित हैं, उपयोग करें:

id -Gn

जो groupsयूनीक्स ( यूनिक्स मैनुअल के अनुसार ) पर उपयोगिता के बराबर है ।

मैकओएस और यूनिक्स पर, id -pसामान्य इंटरैक्टिव के लिए कमांड का सुझाव दिया गया है।

मापदंडों की व्याख्या:

-G, --groups- सभी ग्रुप आईडी प्रिंट करें

-n, --name- एक नंबर के बजाय एक नाम प्रिंट करें, के लिए-ugG

-p - आउटपुट को मानव-पठनीय बनाएं।


10
और id -Gn someusernameनिर्दिष्ट उपयोगकर्ता के लिए समूहों की सूची देता है।
गंभीर

6
id -Gnz | xargs -0 -I% echo %प्रत्येक समूह को एक अलग लाइन पर सूचीबद्ध करेगा। यह उपयोगी है यदि समूह के नाम में रिक्त स्थान हैं।
मार्क लकाटा

1
groupsअप्रचलित कैसे है ? कोई स्रोत? मैंने "यूनिक्स समूह कमांड अप्रचलित" की खोज की, लेकिन कुछ भी नहीं मिला।
फ्रैंकलिन यू


3
वर्तमान उपयोगकर्ता के बाहर समूहों से संबंधित मूल प्रश्न का उत्तर दो।
अस्वीकार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.