एक लिनक्स बॉक्स पर, मैं उन सभी उपयोगकर्ताओं को कैसे सूचीबद्ध करूं जिनके रूट प्रिवी कॉलेज हैं (और सामान्य रूप से सभी उपयोगकर्ताओं के साथ-साथ यदि उनके पास रूट है या नहीं)?
एक लिनक्स बॉक्स पर, मैं उन सभी उपयोगकर्ताओं को कैसे सूचीबद्ध करूं जिनके रूट प्रिवी कॉलेज हैं (और सामान्य रूप से सभी उपयोगकर्ताओं के साथ-साथ यदि उनके पास रूट है या नहीं)?
जवाबों:
रूट पासवर्ड बदलना न भूलें। यदि किसी भी उपयोगकर्ता के पास रूट के अलावा UID 0 है, तो उन्हें नहीं करना चाहिए। बुरा विचार। जाँच करने के लिए:
grep 'x:0:' /etc/passwd
फिर, आपको यह नहीं करना चाहिए लेकिन यह जांचने के लिए कि क्या उपयोगकर्ता रूट समूह का सदस्य है:
grep root /etc/group
यह देखने के लिए कि क्या कोई कमांड को रूट के रूप में निष्पादित कर सकता है, sudoers की जाँच करें:
cat /etc/sudoers
SUID बिट की जांच करने के लिए, जो प्रोग्राम को रूट विशेषाधिकारों के साथ निष्पादित करने की अनुमति देता है:
find / -perm -04000
grep '[^:]*:[^:]*:0:' /etc/passwd:। SUID की जाँच के लिए विशेष रूप से +1।
यह देखने के लिए कि UID 0 कौन है:
getent passwd 0
यह देखने के लिए कि समूह में कौन है root, wheel admऔर admin:
getent group root wheel adm admin
सभी उपयोगकर्ताओं और उन समूहों को सूचीबद्ध करने के लिए जिनके वे सदस्य हैं:
getent passwd | cut -d : -f 1 | xargs groups
getent passwdइसके बजाय, वास्तव में सही है। बस जाँच / आदि / sudoers करने के लिए मत भूलना।
शुद्ध रूट यूजर आईडी "0" है।
सिस्टम के सभी उपयोगकर्ता / etc / passwd फ़ाइल में हैं:
less /etc/passwd
रूट करने वालों के पास यूजर आईडी के रूप में "0" है, जो कि 3 कॉलम है। समूह (4 वें स्तंभ) के रूप में "0" के साथ कुछ मूल विशेषाधिकार भी हो सकते हैं।
इसके बाद, आप समूहों को देखना चाहेंगे, और देखेंगे कि "रूट" या "व्हील" या "एडमिन" ग्रुप्स का अतिरिक्त सदस्य कौन है:
less /etc/group
उन समूहों में सूचीबद्ध उपयोगकर्ता कुछ मूल विशेषाधिकार हो सकते हैं, खासकर "सुडो" कमांड के माध्यम से।
अंतिम चीज़ जिसे आप जांचना चाहते हैं, वह है "sudo" कॉन्फिगर करना और यह देखना कि कौन इस कमांड को चलाने के लिए प्राधिकरण के रूप में सूचीबद्ध है। यह फ़ाइल स्वयं अच्छी तरह से प्रलेखित है, इसलिए मैं इसे यहां पुन: प्रस्तुत नहीं करूंगा:
less /etc/sudoers
इसमें उन मुख्य क्षेत्रों को शामिल किया गया है, जिनकी जड़ तक पहुँच हो सकती है।
consolehelperऔर PackageKit।)
getent passwdसभी सिस्टम उपयोगकर्ताओं (रूट सहित) को पासवार्ड प्रारूप में सूचीबद्ध करना चाहिए, भले ही वे डेटाबेस में परिभाषित न हों।
सभी उपयोगकर्ताओं को मुद्रित करने के लिए
perl -n -e '@user = split /:/ ; print "@user[0]\n";' < /etc/passwd
UID 0 वाले केवल उन उपयोगकर्ताओं को मुद्रित करने के लिए, जैसा कि अन्य लोगों ने कहा है, निहित मूल विशेषाधिकारों वाले उपयोगकर्ता:
perl -n -e '@user = split /:/ ; print "@user[0]\n" if @user[2] == "0";' < /etc/passwd
getent passwdइसके बजाय उपयोग करें । : अपना पहला "सभी उपयोगकर्ताओं को मुद्रित" उदाहरण के लिए, बल्कि इस कोशिशgetent passwd | perl -naF: -e 'print "$F[0]\n"'
सभी उपयोगकर्ताओं की त्वरित सूची के लिए, passwdएक स्थान के बाद कमांड टाइप करने के बाद दो बार (ऑटो-पूर्ण) टैब को हिट करने का प्रयास करें । यह suकमांड के साथ भी काम करता है ।
मूल-विशेषाधिकार वाले उपयोगकर्ता के रूप में किया जाना चाहिए।