SUDO पासवर्ड से अलग SSH / लॉगिन पासवर्ड


9

मैं अपने खाते में लॉगिन (GUI, शेल, या SSH के माध्यम से) का उपयोग करने की तुलना में अपने उपयोगकर्ता को sudo स्थिति में ऊपर उठाने के लिए एक अलग पासवर्ड का उपयोग करना चाहूंगा। क्या यह संभव है?

EDIT: चूंकि रूट पासवर्ड सेट करने से रूट के रूप में लॉगिन की अनुमति मिलती है, यह जाने का एक अच्छा तरीका नहीं है। मैं सिस्टम-वाइड रूट पासवर्ड के बजाय उपयोगकर्ता-विशिष्ट sudo पासवर्ड पसंद करूंगा।


1
क्या आप इस पर विस्तार से बता सकते हैं - आप ऐसा क्यों करना चाहते हैं?
डग हैरिस

1
मुझे लगता है कि सवाल खुद को काफी अच्छी तरह से समझाता है, लेकिन लक्ष्य लंबे, कठिन पासवर्ड के माध्यम से लॉगिन को सुरक्षित बनाना और फिर sudo एक्सेस के लिए एक अलग पासवर्ड का उपयोग करना है, ताकि उपयोगकर्ता के खाते से समझौता करना स्वचालित रूप से sudo पहुँच प्रदान न करे।
रिचर्ड

मैंने सुना है कि rsa / dsa कुंजियों के माध्यम से sudo करना संभव है, जो आपके पास कोई भी पासफ़्रेज़ हो सकता है।
राब

जवाबों:


2

आदमी सूदखोरों से:

rootpw          If set, sudo will prompt for the root password instead of the
                password of the invoking user.  This flag is off by default.

runaspw         If set, sudo will prompt for the password of the user defined
                by the runas_default option (defaults to root) instead of the
                password of the invoking user.  This flag is off by default.

या आप केवल ssh के माध्यम से पासवर्ड आधारित लॉगिन पर पूरी तरह से प्रतिबंध लगा सकते हैं। दूरस्थ लॉगिन के लिए एक पासफ़्रेज़ एन्क्रिप्टेड कुंजी की आवश्यकता है। फिर आप sudo के लिए पासवर्ड का उपयोग करने के लिए स्वतंत्र हैं। प्रासंगिक विकल्प है

आदमी से sshd_config

 PasswordAuthentication
         Specifies whether password authentication is allowed.  The default
         is “yes”.

आपकी मदद के लिए धन्यवाद, चास। ओवेन्स। मुझे डर है कि आपके समाधान का एक साइड-इफेक्ट यह है कि रूट खाते में एक पासवर्ड होगा और इसलिए रूट के रूप में लॉगिन करना संभव होगा, जो कि एक दरवाजा नहीं है जिसे मैं खुला छोड़ना चाहता हूं। मैं सिस्टम-वाइड रूट पासवर्ड के बजाय उपयोगकर्ता-विशिष्ट sudo पासवर्ड पसंद करूंगा।
रिचर्ड

साथ ही आप sshd_config से रूट लॉगिन निष्क्रिय कर सकते हैं
रोब

1

क्या आप इसके बदले में सूदर्स मैन की तलाश कर रहे हैं?

   targetpw        If set, sudo will prompt for the password of the user
                   specified by the -u option (defaults to root) instead of the
                   password of the invoking user. 

आपकी मदद के लिए धन्यवाद, johnshen64 मुझे डर है कि आपके समाधान का एक साइड-इफेक्ट यह है कि रूट खाते में एक पासवर्ड होगा और इसलिए रूट के रूप में लॉगिन करना संभव होगा, जो कि एक दरवाजा नहीं है जिसे मैं खुला छोड़ना चाहता हूं। मैं सिस्टम-वाइड रूट पासवर्ड के बजाय उपयोगकर्ता-विशिष्ट sudo पासवर्ड पसंद करूंगा।
रिचर्ड

उस उपयोगकर्ता को रूट उपयोगकर्ता होने की आवश्यकता नहीं है, यदि आप इसे निर्दिष्ट नहीं करते हैं तो यह बस रूट करने के लिए डिफॉल्ट करता है। आप यह देखने के लिए प्रयोग कर सकते हैं कि क्या यह आपके लिए होगा। यूनिक्स काफी खुला है और अगर ये अभी भी आपके लिए काम नहीं करते हैं, तो आप एक रैपर स्क्रिप्ट भी लिख सकते हैं या यहां तक ​​कि सुडोल को भी संशोधित कर सकते हैं (यदि आप सी जानते हैं) तो वही करें जो आप चाहते हैं।
जॉनशेन ६४

@ johnshen64 मुझे लगता है कि वह इस तथ्य पर आपत्ति जता रहे हैं कि सभी उपयोगकर्ताओं के लिए एक ही पासवर्ड का उपयोग किया जाएगा।
चास। ओवेन्स

मैं देखता हूं, लेकिन प्रत्येक उपयोगकर्ता के लिए एक व्यवस्थापक उपयोगकर्ता बनाया जा सकता है, $ {USER} foradmin कहते हैं, ताकि एक उपयोगकर्ता हमेशा -u $ {USER} foradmin को निर्दिष्ट करता है, हालांकि यह लागू करने के लिए कि सुडो को अभी भी एक कस्टम स्क्रिप्ट द्वारा प्रतिस्थापित करने की आवश्यकता है।
जॉनशेन ६४

1

SSH के माध्यम से पासवर्ड लॉगऑन को अक्षम कैसे करें और सार्वजनिक कुंजी लॉगऑन की अनुमति दें जहां आप पासवर्ड का अनुमान लगाना मुश्किल बना सकते हैं। फिर स्थानीय पासवर्ड को sudo द्वारा छोटा और उपयोग किया जा सकता है।

इसके अलावा, आपको /etc/pam.d/sudoएक अलग (या अतिरिक्त) मॉड्यूल का उपयोग करने के लिए कॉन्फ़िगर करना होगा , पहली नज़र में pam_dialpassआप की आवश्यकता हो सकती है।

आप एक के लिए LDAP कॉन्फ़िगरेशन और दूसरे के लिए स्थानीय पासवर्ड भी कॉन्फ़िगर कर सकते हैं। यह सब इस बात पर निर्भर करेगा कि आप कितने बदलाव करने में सक्षम हैं और बनाने के लिए तैयार हैं, क्या मॉड्यूल उपलब्ध हैं आदि।


आपकी मदद के लिए धन्यवाद, ब्रैम। आपका पहला सुझाव काम करेगा, कि सार्वजनिक कुंजी प्रमाणीकरण के साथ काम करने के लिए निषेधात्मक हो सकता है, जब तक कि आप महत्वपूर्ण फ़ाइलों को चारों ओर स्थानांतरित करने के लिए तैयार न हों।
रिचर्ड

1

समाधान 1: newgrp

अपने उपयोग के मामले को संबोधित करने का एक सरल तरीका :NOPASSWDएक समूह और समूह पासवे के साथ संयोजन में उपयोग करना होगा :

Sudoers में एक पंक्ति जोड़ें:

%rudo   ALL=(ALL:ALL) NOPASSWD:ALL

एक पासवार्ड संरक्षित समूह बनाएँ:

groupadd rudo
gpasswd  rudo # Enter passwd

अब जब आप एक अप्रकाशित उपयोगकर्ता के रूप में लॉगिन करते हैं ( rudoसमूह में पहले से ही नहीं ), तो समूह में लॉगिन करें rudo, जिस बिंदु पर आपको पासवर्ड के लिए संकेत दिया जाएगा।

login user
newgrp rudo

अब आप sudoपासवर्ड कम चला सकते हैं , इसलिए जब तक आप समूह में लॉग इन रहते हैं।


समाधान 2: रनस्पॉ

ऐसा करने के लिए एक बेहतर, संभवतः अधिक सुरक्षित तरीका है runaspw। विकल्प के runaspwसाथ जुड़ा हुआ है runas_defaultइसलिए आपको वह विकल्प भी जोड़ना होगा।

मान लें कि आपके पास पहले से ही डिफ़ॉल्ट %sudoसमूह प्रविष्टि है:

%sudo   ALL=(ALL:ALL) ALL

इन पंक्तियों को sudoers फ़ाइल में जोड़ें:

Defaults:%sudo  runas_default=sudo
Defaults:%sudo  runaspw

अब sudoपासवर्ड के साथ एक नया उपयोगकर्ता जोड़ें :

useradd sudo -d /nonexistent -s /usr/sbin/nologin -MNr
passwd sudo

अब sudo ग्रुप यूजर्स को sudo यूजर के पासवार्ड के लिए प्रेरित किया जाएगा लेकिन sudo ग्रुप में केवल उपयोगकर्ता ही sudo कर पाएंगे (इसके विपरीत समूह समाधान के साथ, जहां समूह में कोई भी या समूह पासवार्ड sudo कर सकता है)।

एक मामूली समस्या यह है कि डिफ़ॉल्ट रनर उपयोगकर्ता अब sudosudo के रूप में रूट है क्योंकि आपको रूट को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता है:

sudo -u root <cmd>

लेकिन एक उपनाम ( alias sudo='sudo -u root') या अप्रत्यक्ष सुडोकू कमांड को परिभाषित करना काफी आसान है ।

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