ओपी ने समूह कमांड का उपयोग करने की संभावना को बाहर करने के लिए प्रश्न को दोहराया । चूंकि लिनक्स पर कोरुटिल्स का हिस्सा है, या तो (ए) इसे हटा दिया गया था, या (बी) ओपी नाम को गलत कर रहा है।
groups
उदाहरण के लिए, ओपी इस तरह का उपयोग कर सकता था :
for name in $(cut -d: -f1 /etc/passwd);do groups $name|grep -w sudo|awk '{print $1;}';done
समूह के नाम के लिए सिर्फ एक सुझाव है grep का सुझाव दिया /etc/group
। कभी-कभी यह काम करता है।
Grep का थोड़ा बेहतर उपयोग निम्नलिखित के सिंटैक्स को ध्यान में रखता है /etc/group
:
group_name:password:GID:user_list
इतना है कि केवल पहली बृहदान्त्र से पहले का हिस्सा एक मान्य समूह-नाम है। सिंटैक्स (और होगा) के संबंध के बिना एक सादा grep फ़ाइल से भ्रामक मिलान करता है। Grep मैच को बनाने के लिए नियमित अभिव्यक्तियों का उपयोग करें, जिसकी आवश्यकता है:
grep -E '^users:' /etc/group |sed -e 's/^.*://'
या शेल चर का उपयोग करना:
grep -E '^'$groupname':' /etc/group |sed -e 's/^.*://'
हालाँकि, यह केवल उन लोगों को सूचीबद्ध करता है जो डिफ़ॉल्ट समूह में नहीं हैं । जोड़ने के लिए उन है, तो आप से समूह-आईडी नंबर निकाल कर, पासवर्ड फ़ाइल, जैसे खाते में लेने की जरूरत /etc/group
है, और जिन उपयोगकर्ताओं की डिफ़ॉल्ट समूह से मेल खाता है मुद्रण /etc/passwd
, जैसे,
grp=$(awk -F: '$1 ~ /^users$/ {print $3; }' </etc/group)
awk -F: '$4 ~ /^'$grp'$/ { print $1; }' </etc/passwd
आप केवल grep और sed का उपयोग करके एक ही काम कर सकते हैं, लेकिन यह awk के उपयोग से अधिक काम है।
एक अन्य सुझाए गए उत्तर का उपयोग करके प्रस्तावित किया गया है getent
, जो कि लिनक्स मशीन पर होने की संभावना है (डेबियन के साथ, यह GNU libc का हिस्सा है)। हालाँकि इसकी एक त्वरित जाँच केवल /etc/group
सामग्री प्रदान करती है।
मैं (अधिकांश की तरह) नहीं है libusers
या lid
स्थापित नहीं है , इसलिए मैं इस पर टिप्पणी नहीं कर सकता कि क्या यह ओपी की शर्तों को पूरा करता है।
id
कार्यक्रम भी है , जो समूह की जानकारी देता है। संभव जवाब के रूप में कोई उस पर विस्तार कर सकता है।
groups
आज्ञा है। यह संभावना नहीं है कि आपके पास यह लिनक्स पर नहीं है, क्योंकि यह कोरुटिल का हिस्सा है।