यदि आप रूट पासवर्ड पूछना चाहते हैं, तो उपयोगकर्ता के पासवर्ड के विपरीत, ऐसे विकल्प हैं जिन्हें आप डाल सकते हैं /etc/sudoers
। rootpw
विशेष रूप से यह रूट पासवर्ड मांगेगा। वहाँ है runaspw
और targetpw
साथ ही; विवरण के लिए sudoers (5) मैनपेज देखें।
इसके अलावा, sudo PAM के माध्यम से अपना प्रमाणीकरण (हर चीज की तरह) करता है। PAM प्रति-एप्लिकेशन कॉन्फ़िगरेशन का समर्थन करता है। सूडो का विन्यास (कम से कम मेरे डेबियन सिस्टम पर) है /etc/pam.d/sudo
, और ऐसा दिखता है:
$ cat sudo
#%PAM-1.0
@include common-auth
@include common-account
@include common-session-noninteractive
दूसरे शब्दों में, डिफ़ॉल्ट रूप से, यह सिस्टम पर बाकी सब चीजों की तरह प्रमाणित करता है। आप उस @include common-auth
लाइन को बदल सकते हैं , और PAM (और इस प्रकार sudo) एक वैकल्पिक पासवर्ड स्रोत का उपयोग कर सकते हैं। सामान्य टिप्पणी में गैर-टिप्पणी वाली लाइनें कुछ इस तरह दिखती हैं (डिफ़ॉल्ट रूप से, यदि आप उदाहरण के लिए, LDAP का उपयोग कर रहे हैं तो यह अलग होगा):
auth [success=1 default=ignore] pam_unix.so nullok_secure
auth requisite pam_deny.so
auth required pam_permit.so
आप pam_userdb.so
इसके बजाय का उपयोग कर सकते हैं pam_unix.so
, और अपने वैकल्पिक पासवर्ड को बर्कले डीबी डेटाबेस में संग्रहीत कर सकते हैं।
उदाहरण
मैंने निर्देशिका /var/local/sudopass
, स्वामी / समूह root:shadow
, मोड बनाया 2750
। इसके अंदर, मैं आगे गया और एक पासवर्ड डेटाबेस फ़ाइल का उपयोग करके बनाया db5.1_load
(जो कि डेबियन व्हीज़ी पर उपयोग में बर्कले डीबी का संस्करण है:
# umask 0027
# db5.1_load -h / var / local / sudopass -t hash -T passwd.db
एंथोनी
WMaEFvCFEFplI
^D
उस हैश को mkpasswd -m des
"पासवर्ड" पासवर्ड का उपयोग करके उत्पन्न किया गया था । बहुत सुरक्षित! (दुर्भाग्य से, pam_userdb प्राचीन crypt(3)
हैशिंग से बेहतर कुछ भी समर्थन नहीं करता है )।
अब, लाइन को संपादित करें /etc/pam.d/sudo
और निकालें @include common-auth
, और इसके स्थान पर रखें:
auth [success=1 default=ignore] pam_userdb.so crypt=crypt db=/var/local/sudopass/passwd
auth requisite pam_deny.so
auth required pam_permit.so
ध्यान दें कि pam_userdb .db
पारित डेटाबेस में एक्सटेंशन जोड़ता है , इसलिए आपको इसे छोड़ना होगा .db
।
एक टिप्पणी में dannysauer के अनुसार , आपको समान रूप से संपादित करने की आवश्यकता हो सकती है ।/etc/pam.d/sudo-i
अब, sudo के लिए, मुझे password
अपने वास्तविक लॉगिन पासवर्ड के बजाय उपयोग करना होगा :
एंथोनी @ सुडोटेस्ट: ~ $ सुडो -के
एंथोनी @ सूडोटेस्ट: ~ $ सूडो गूंज -''नट काम '
[sudo] एन्थोनी के लिए पासवर्ड: passwordRETURN
इसने काम कर दिया