जवाबों:
यह यथोचित रूप से मज़बूती से काम करेगा यदि पैकेज dpkg
(सहित apt install
) के माध्यम से स्थापित किया गया था । डिफ़ॉल्ट Ubuntu स्थापना और उन्हें बनाने वाले पैकेज में बनाई गई उपयोगकर्ताओं की सूची के लिए muru का उत्तर देखें । उन उपयोगकर्ताओं के लिए, यह विधि किसी भी आउटपुट का उत्पादन नहीं करेगी।
आप कमांड का उपयोग कर सकते हैं:
grep -RlE '(adduser|useradd).*systemd' /var/lib/dpkg/info --include='*inst' | sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'
<user>
उस उपयोगकर्ता के नाम से बदलें, जिसमें आप रुचि रखते हैं, उदाहरण के लिए,systemd
यह उस उपयोगकर्ता को बनाने के लिए किस पैकेज के लिए ज़िम्मेदार है, यह देखने के लिए या आदेश में उपयोगकर्ता या कमांड के लिए जाने जाने वाले सभी पैकेजों की स्क्रिप्ट preinst
और खोज करता है । परिणाम को sed के लिए पाइप किया जाता है, इसलिए यह स्क्रिप्ट फ़ाइल के पूर्ण नाम के बजाय केवल पैकेज का नाम देता है।postinst
dpkg
adduser
useradd
grep -RlE
पुनरावर्ती खोजें और केवल मिलान वाले फ़ाइलों के नाम प्रिंट करें, विस्तारित नियमित अभिव्यक्तियों का उपयोग करें'(adduser|useradd).*<user>' /var/lib/dpkg/info --include='*inst'
के लिए खोज adduser
या useradd
आदेश और उपयोगकर्ता आप एक ही लाइन पर लगाना चाहते हैं ( .*
उन दोनों के बीच कोई भी वर्ण से मेल खाएगी, किसी भी आदेश के लिए विकल्पों को पकड़ने) निर्देशिका में जहां dpkg
दुकानों स्क्रिप्ट, फ़ाइलें हैं जिनके नाम के साथ समाप्त मेंinst
sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'
/
पूर्ण पथ और अंतिम .preinst
या .postinst
विस्तार में अंतिम से पहले और सहित सब कुछ छीन लेंfind
यहाँ उपयोग करने की तुलना में खोज करने के लिए एक तेज़ और तेज़ तरीका सुझाने के लिए @ मुरु का धन्यवाद :)
grep -Rl 'adduser.*<user>' /var/lib/dpkg/info --include='*inst'
find -exec grep
बात को आसान बनाने के लिए ।
basename -s
वाइल्डकार्ड / रेगेक्स ... स्वीकार करने की ज़रूरत है) तो मैं इसे प्री एंड पोस्ट इंस्टिक्स प्रत्यय से काट सकता हूं (लेकिन मुझे एडुसर स्क्रिप्ट नहीं मिली क्योंकि श्रुति इतनी सिकुड़ गई )
postinst
, इसलिए यह संभव नहीं है कि आपको कोई ऐसा उपयोग मिल जाए preinst
(लेकिन मुझे लगता है कि दुर्लभ मामला मौजूद हो सकता है)।
यहां सामान्य adduser
उपयोगकर्ताओं और समूहों के लिए एक महत्वपूर्ण अपवाद है: जो डिफ़ॉल्ट रूप से उबंटू के साथ आते हैं। ये base-passwd
पैकेज द्वारा प्रदान किए जाते हैं । इस पैकेज द्वारा जोड़े गए उपयोगकर्ताओं और समूहों की एक सूची (और वर्णित) में दी गई है /usr/share/doc/base-passwd/users-and-groups.{html,txt.gz}
। सूची है:
root man majordom irc gdm
daemon lp postgres gnats saned
bin mail www-data nobody klog
sys news backup messagebus syslog
sync uucp operator postfix
games proxy list haldaemon
adm fax audio staff sshd
tty voice src users fetchmail
disk cdrom shadow lpadmin cupsys
kmem floppy utmp sasl nogroup
dialout tape video scanner
dip sudo plugdev ssh
पैकेज README ( /usr/share/doc/base-passwd/README
) 60000-64999 रेंज में यूआईडी के साथ कुछ उपयोगकर्ताओं को भी सूचीबद्ध करता है, और बताता है कि ये संबंधित पैकेज द्वारा बनाए गए हैं।
और देखें:
base-passwd
14.04 के लिए स्रोत कोड - आप *.master
फ़ाइलों में उपयोगकर्ताओं और समूहों की सूची देख सकते हैं ।
preinst
उस स्क्रिप्ट में उपयोगकर्ताओं को बनाने वाले कुछ पैकेजों की जाँच करनी चाहिए । लेकिन मुझे विचार आता है इसलिए मैं इसे स्वीकार करूंगा।