मैं su कमांड के साथ रूट के रूप में लॉगिन नहीं कर सकता, लेकिन मैं SSH के साथ कर सकता हूं


17

यह कैसे संभव है कि मैं ( su rootया suमुझे गलत पासवर्ड त्रुटि) के रूप में लॉग इन नहीं कर सकता , लेकिन मैं उसी पासवर्ड से ssh root@localhostया उसके ssh root@my_local_IPसाथ लॉग इन कर सकता हूं ?

मैं CentOS 6.4 का उपयोग कर रहा हूं।


अपडेट 1 :

cat /etc/pam.d/su

देता है:

#%PAM-1.0
auth        sufficient  pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth       sufficient  pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth       required    pam_wheel.so use_uid
auth        include     system-auth
account     sufficient  pam_succeed_if.so uid = 0 use_uid quiet
account     include     system-auth
password    include     system-auth
session     include     system-auth
session     optional    pam_xauth.so

अपडेट 2 :

$ sudo grep su /var/log/secure | grep -v sudo

देता है:

Feb 23 13:12:17 fallah su: pam_unix(su:auth): authentication failure;
logname=fallah uid=501 euid=501 tty=pts/0 ruser=fallah rhost=  user=root

लगभग 20 बार दोहराया।


1
फ़ाइल को साफ़ करने का प्रयास करें /etc/securetty( cp /etc/securetty{,.old}; : > /etc/securetty)। यदि वह अभी भी काम नहीं करता है, की सामग्री प्रदान करें /etc/pam.d/su
पैट्रिक

2
निश्चित रूप से ssh 192.168.1.218आपके साथ केवल अपने आप को लॉग इन कर रहे हैं? sshसामान्य रूप से ssh root@192.168.1.218या के माध्यम से रूट के रूप में लॉग इन करने के लिए ssh root@localhost
ग्रीम

1
अपने शेल का पीआईडी ​​(12345) प्राप्त करें ( echo $$), खोलें (जैसे के माध्यम से ssh) एक रूट शेल (एसयूआईडी बायनेरी ट्रेस करने के लिए आवश्यक) और straceउस शेल के लिए शुरू करें : strace -o su.strace -p 12345 -fऔर त्रुटि संदेश से पहले अजीब त्रुटियों की तलाश करें। या अपने प्रश्न में त्रुटि संदेश से पहले अंतिम 30 पंक्तियों को कॉपी करें यदि आप उस तरह के आउटपुट से परिचित नहीं हैं।
हाऊक लाॅगिंग

1
@HaLLaging यह कहता हैProcess 11736 attached - interrupt to quit
फलाह

2
ठीक है, यही कारण है कि यह काम नहीं कर रहा है। / बिन / सु को अपना सेट बिट होना चाहिए ताकि जब साधारण (गैर-रूट) उपयोगकर्ता इसका उपयोग करें, तो उसके पास पासवर्ड सूची / एक्सेस / छाया में पहुंच होगी। chmod 4755 /bin/suइसे ठीक करने के लिए , रूट के रूप में टाइप करें।
मार्क प्लॉटनिक

जवाबों:


23

अपनी टिप्पणी में, आपने कहा कि /bin/suनिम्नलिखित मोड / स्वामी हैं:

-rwxrwxrwx. 1 root root 30092 Jun 22 2012 /bin/su

यहां पर दो समस्याएं हैं।

  • इसे सेट-यूड बिट चालू करने की आवश्यकता है, ताकि यह हमेशा रूट अनुमतियों के साथ चले, अन्यथा जब कोई साधारण (गैर-रूट) उपयोगकर्ता इसे चलाता है, तो इसमें पासवर्ड जानकारी तक पहुंच नहीं होगी /etc/shadowऔर न ही सेट करने की क्षमता वांछित नए उपयोगकर्ता के लिए userid।

  • इसे बिट्स को लिखना groupऔर otherबंद करना चाहिए , ताकि अन्य उपयोगकर्ता इसे बदल न सकें।

इसे ठीक करने के लिए, लॉगिन करें root- आपने कहा कि आप ऐसा कर सकते हैं ssh- और टाइप करें

chmod 4755 /bin/su

या, वैकल्पिक रूप से,

chmod u+s,g-w,o-w /bin/su

( Chmod के लिए मानक दस्तावेज़ इस बारे में अधिक विवरण में जाता है कि यह किस प्रकार के तर्क लेता है।) यह मोड बिट्स को उस तरह से पुनर्स्थापित करेगा, जब वे ऑपरेटिंग सिस्टम पहली बार स्थापित किए गए थे। जब आप इस फ़ाइल को सूचीबद्ध करते हैं, तो इसे इस तरह देखना चाहिए:

-rwsr-xr-x. 1 root root 30092 Jun 22 2012 /bin/su

जैसा कि @ G-Man ने उल्लेख किया है कि, 777 मोड वाली फाइलें अविश्वसनीय उपयोगकर्ताओं द्वारा अधिलेखित की जा सकती हैं, और यदि ऐसा है, तो आप उन्हें वितरण माध्यम या बैकअप से पुनर्स्थापित करना चाह सकते हैं।


1
मैं आमतौर पर जैसे का उपयोग करता हूं: chmod 755 /bin/suअतिरिक्त 4 के लिए क्या है ?
एलिरेज़ा फलाह

4पहली स्थिति में सेट uid अनुमति प्रतिनिधित्व करता है। मैंने अनुमति बिट्स के लिए प्रतीकात्मक नामों का उपयोग करते हुए चामोद का उपयोग करने का एक वैकल्पिक तरीका जोड़ने के लिए अपना उत्तर संपादित किया है। उम्मीद है कि यह अधिक स्पष्ट होगा।
मार्क प्लॉटनिक

बहुत बहुत धन्यवाद। मुझे अब पता चला कि मैंने chmod -R 777 /binगलती से अंजाम दिया , और इसीलिए मुझे शाप दिया गया है: D
अलिरेज़ा फलाह

मैंने एक और सवाल भी पूछा , क्या आप इसे देखेंगे, शायद आपको इसका जवाब पता होगा।
एलिर्ज़ा फालोह

cyberciti.biz/tips/…rpm फ़ाइल अनुमतियों को पुनर्स्थापित करने के लिए उपयोग करने का वर्णन करता है , लेकिन मैंने इसे आज़माया नहीं है।
मार्क प्लॉटनिक

10

1. पहिया समूह?

यह संभावना है क्योंकि आपका उपयोग wheelसमूह में नहीं है । Red Hat डिस्ट्रोस पर आप स्पष्ट रूप से उन उपयोगकर्ताओं को हटा सकते हैं जो इस समूह में suकमांड चलाने से नहीं हैं ।

यहां suPAM कॉन्फ़िगरेशन डिफ़ॉल्ट रूप से कैसा दिखता है:

$ more /etc/pam.d/su
#%PAM-1.0
auth        sufficient  pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth       sufficient  pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth       required    pam_wheel.so use_uid
auth        include     system-auth
account     sufficient  pam_succeed_if.so uid = 0 use_uid quiet
account     include     system-auth
password    include     system-auth
session     include     system-auth
session     optional    pam_xauth.so

यह पंक्ति समूह suमें उपयोगकर्ताओं के लिए कमांड तक पहुंच को सीमित कर सकती है wheel:

auth        required    pam_wheel.so use_uid

इसकी ध्वनि से यह सक्षम है और आपके उपयोगकर्ता को suकमांड संचालित करने की अनुमति नहीं है ।

SSH काम करता है क्योंकि यह एक अलग PAM तंत्र के माध्यम से जाता है। SSH के पास रूट लॉगिन तक पहुँच को सीमित करने के लिए भी अपनी सुविधाएं हैं। रूट लॉगिन आमतौर पर डिफ़ॉल्ट रूप से अनुमत होता है, कम से कम Red Hat डिस्ट्रोस के अधिकांश पर:

$ sudo grep PermitRoot /etc/ssh/sshd_config 
#PermitRootLogin yes
# the setting of "PermitRootLogin without-password".

भले ही ऊपर टिप्पणी की गई है, यह डिफ़ॉल्ट है, और यह है कि ओपनएसएसएच कैसे दिखाता है कि यह कॉन्फ़िगरेशन में डिफ़ॉल्ट सेटिंग है।

इसके साथ काम करना?

यदि आपका सिस्टम इस तरह कॉन्फ़िगर किया गया है, तो आप अपने उपयोगकर्ता नाम को wheelसमूह में जोड़ सकते हैं ।

$ useradd -G wheel saml

लॉग आउट करने और वापस करने के बाद:

$ groups
saml wheel

नोट: मेरा उपयोगकर्ता नाम ऊपर "saml" है।

2. अनुमतियाँ सु पर?

जाँच करें कि निष्पादन योग्य जड़ के स्वामित्व में है।

$ type -a su
su is /usr/bin/su
su is /bin/su

$ ls -l /usr/bin/su /bin/su
-rwsr-xr-x. 1 root root 32064 Jan 13 06:31 /bin/su
-rwsr-xr-x. 1 root root 32064 Jan 13 06:31 /usr/bin/su

यह भी पुष्टि करें कि निष्पादनों में उनके sबिट्स सक्षम हैं। यह उन्हें सेतुहीन बनाता है, ताकि जब वे निष्पादित हों तो वे अपने स्वयं के, जड़ के रूप में चलें।

3. लॉग क्या कहते हैं?

जब आप su -कमांड करने का प्रयास करते हैं तो आपको प्रयास के /var/log/secureबारे में प्रविष्टियों को देखना चाहिए ।

$ sudo grep su /var/log/secure | grep -v sudo
Feb 23 23:31:26 greeneggs su: pam_unix(su-l:session): session opened for user root by saml(uid=0)
Feb 24 00:27:32 greeneggs su: pam_unix(su-l:session): session closed for user root
Feb 24 01:34:12 greeneggs su: pam_unix(su-l:session): session opened for user root by saml(uid=1000)
Feb 24 01:34:26 greeneggs su: pam_unix(su-l:session): session closed for user root

यह देखने के लिए लॉग इन करें कि क्या आपको कोई अतिरिक्त जानकारी मिलती है।

4. क्या आप सुनिश्चित हैं कि पासवर्ड समस्या नहीं है?

जब मैं इसका उपयोग करके लॉगिन करने का प्रयास करता su -हूं, तो जब मैं इसे गलत पासवर्ड देता हूं, तो मुझे निम्नलिखित मिलते हैं:

$ su -
Password: 
su: Authentication failure
$

मैं एक और खाता बनाने की कोशिश करूंगा और यह देखूंगा कि क्या यह द्वितीयक खाता su -सफलतापूर्वक चल सकता है ।


आपके महान उत्तर के द्वारा धन्यवाद, मैंने आपके उत्तर को पढ़ने के बाद क्या कोशिश की: usermod -a -G wheel my_usernameऔर परिणाम groupsहै fallah wheel। तो परिणाम cat /etc/pam.d/suअब मेरे सवाल में है, और, फिर से मैं su कमांड द्वारा रूट के रूप में लॉग इन नहीं कर पा रहा हूँ !!!
एलिरेज़ा फ़ॉलाह

यह अंतिम पंक्ति है /var/log/secure:Feb 24 10:19:45 fallah su: pam_unix(su:auth): authentication failure; logname=fallah uid=501 euid=501 tty=pts/2 ruser=fallah rhost= user=root
अलिर्ज़ा फॉलाह

और यह रेखा लगभग 20 बार दोहराई जाती है/var/log/secure
एलिरेज़ा फ़ॉलाह

4: लेकिन जब मैं कोशिश करता हूं: su: incorrect password - और पासवर्ड सही है, क्योंकि मैं एसएसएच में एक ही पासवर्ड के साथ लॉग इन कर सकता हूं
एलिरेज़ा फलाह

मैंने एक और खाते के साथ लॉगिन करने की कोशिश की, जैसे su alireza, और फिर से वही समस्या थी
एलिरेज़ा फलाह

0

अगर आपको इस तरह का एरर मैसेज मिल रहा है

su: PAM adding faulty module: /lib64/security/pam_tally.so
su: PAM unable to dlopen(/lib64/security/pam_tally.so): /lib64/security/pam_tally.so: cannot open shared object file: No such file or directory

इस चरण को करें:

ln -s /lib64/security/pam_tally2.so /lib64/security/pam_tally.so

फिर सु की कोशिश करो। यह काम करना चाहिए।

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