Sudo उपयोगकर्ता प्रतिस्थापन लक्ष्य उपयोगकर्ता sudoer होने की आवश्यकता है


1

मैं एक स्क्रिप्ट को एक अलग उपयोगकर्ता के रूप में निष्पादित करने की कोशिश कर रहा हूं (कहते हैं, मारविन ):

$ sudo -u marvin scriptname

एक मशीन (Ubuntu 14.04) पर, कमांड काम करता है और स्क्रिप्ट सफलतापूर्वक निष्पादित होती है।

एक अन्य मशीन (कुबंटु 16.04) पर, उसी कमांड को चलाने से त्रुटि होती है

marvin is not in the sudoers file.  This incident will be reported.

मारविन या तो मशीन पर sudoers सूची में नहीं है। यह बात नहीं है, क्योंकि स्क्रिप्ट को निष्पादित करने के लिए sudo अधिकारों की आवश्यकता नहीं है मैं sudo का उपयोग कर रहा हूं मारविन , लेकिन मैं दोनों मशीनों पर sudo अधिकार है। मारविन स्वयं एक सुडोल क्रिया करने का प्रयास नहीं कर रहा है।

क्यों होता है ऐसा? दोनों मशीनों के बीच अंतर होना चाहिए, लेकिन मुझे यह नहीं मिल रहा है। दोनों प्रणालियों पर, फ़ाइल स्वामी और अनुमतियां समान हैं।

संपादित करें : /etc/sudoers दो मशीनों पर फ़ाइलें लगभग समान हैं; प्रासंगिक हिस्सा है

root    ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

न तो किसी नियमित उपयोगकर्ता का उल्लेख करें, लेकिन मैं ( Borea ) का सदस्य हूं sudo प्रत्येक पर समूह। दोनों में आयात रेखा है /etc/sudoers.d/ वैसे भी टिप्पणी की गई, और वह निर्देशिका दोनों मशीनों पर README को छोड़कर, वैसे भी खाली है।

जवाबों:


2

कौन उपयोगकर्ता सूडो के साथ 'रनस' कर सकता है, इसमें परिभाषित किया गया है /etc/sudoers विन्यास फाइल। यह उपयोगिता अत्यंत विन्यास योग्य है इसलिए मैं थोड़ा सरल कर सकता हूं। सुडोल मैनपेज इसे पूरी तरह से कवर करता है

जब फोन किया, sudo कॉलिंग उपयोगकर्ता के लिए नियमों की जाँच करता है। आपके उदाहरण में इसका मतलब है कि उपयोगकर्ता के लिए नियम Borea पहले मूल्यांकन किया जाता है, उन नहीं, यदि कोई है, तो उपयोगकर्ता के लिए मारविन

कॉल से त्रुटि संदेश निश्चित रूप से उस बिंदु को स्पष्ट करने में मदद नहीं करता है।

एक विशिष्ट 'पूर्ण सुडोकू विशेषाधिकार' में इस तरह दिखती है:

borea ALL = (ALL) ALL

यह है कि प्रत्येक आइटम का मतलब है के संदर्भ में एक ही बयान:

Who:                     borea 
On hosts:                ALL
Can run as users:        (ALL)
The commands:            ALL

आपके प्रश्न के संदर्भ में मुख्य प्रविष्टि तीसरी है। यदि यह सभी के लिए सेट नहीं है यदि यह एक उपयोगकर्ता सूची में सेट है जिसमें मारविन शामिल नहीं है, तो कॉल विफल हो जाएगी।

यहाँ मैन पेज से एक अधिक सम्मिलित उदाहरण दिया गया है:

alan    ALL = (root, bin : operator, system) ALL

यह सेटिंग अनुवाद करती है:

उपयोगकर्ता एलन वैकल्पिक रूप से उपयोगकर्ता रूट या बिन के रूप में किसी भी कमांड को चला सकता है   ऑपरेटर या सिस्टम को समूह सेट करना।

तो दो प्रणालियों पर व्यवहार के बीच का अंतर मारविन खाते से बंधा नहीं है, बल्कि आपके खाते में है। कारण पर मेरा सबसे अच्छा अनुमान 'रन के रूप में' सेटिंग है, लेकिन ऐसी अन्य सेटिंग्स हैं जो इसे एक ही कॉन्फ़िगरेशन फ़ाइल में, विश्व स्तर पर और अन्य सूक्ष्म तरीकों (जैसे समूह सदस्यता) में रोक सकती हैं।

देखने के लिए अन्य चीजें:

आपकी प्रतिक्रिया के आधार पर, समस्या sudoers फ़ाइल के साथ नहीं है जैसा कि उपयोगकर्ता के लिए सीधे कॉन्फ़िगर किया गया है Borea । यहाँ एकत्र करने के लिए डेटा बिंदुओं की कपड़े धोने की सूची है और कोशिश करने के लिए चीजें हैं। परिणामों के साथ अपने प्रश्न को अपडेट करें (विशेष रूप से दोनों मशीनों के बीच देखा गया कोई अंतर)।

1. यह आदेश आपके 'sudo' से संबंधित विशेषाधिकारों और सीमाओं को संक्षेप में प्रस्तुत करेगा, जाँच करें कि क्या दो मशीनों के बीच अंतर की सूचना है:

 sudo -l -U borea

2. उपयोगकर्ता के लिए एक ही दोहराएं मारविन । निश्चित रूप से इसकी आवश्यकता नहीं है मारविन के लिए sudoers में हो sudo -u काम करने के लिए, लेकिन यह एक अच्छा डेटा बिंदु है। यह संभव है कि मारविन समूह सदस्यता, आदि द्वारा कुछ सेटिंग्स विरासत में मिलीं।

 sudo -l -U marvin

3. दोनों मशीनों पर, की स्थिति की जाँच करें मारविन किसी भी मतभेद के लिए खाता है। finger डिफ़ॉल्ट रूप से स्थापित नहीं किया जा सकता है; उपयोग sudo apt-get install finger उस मामले में पहली बार।

 sudo finger -l marvin
 sudo passwd --status marvin
 id marvin

4. का उपयोग करके एक खोल खोलने की कोशिश करें मारविन लेखा। su विशेषाधिकार बढ़ाने के लिए एक अलग विधि का उपयोग करता है:

 sudo su marvin

5. मान लें कि रूट खाता शेल एक्सेस के लिए सक्षम है (मुझे लगता है कि डिफ़ॉल्ट Ubuntu अभी भी अक्षम है), यह कोशिश करें:

 sudo -s
 sudo -u marvin scriptname

6. पुष्टि पर / आदि / sudoers:

 ls -alt /etc/sudoers

परिणाम के साथ शुरू होना चाहिए -r--r----- 1 root root ... यदि यह नहीं है, तो इसे ठीक करें:

 sudo chmod 440 /etc/sudoers
 sudo chown root:root /etc/sudoers

7. मशीन से sudoers फ़ाइल को कॉपी करने की कोशिश करें मशीन में चीजें ठीक से काम कर रही हैं जहां वे नहीं हैं। ऐसा करने में बहुत सावधानी बरतें - मूल स्थान को सुरक्षित स्थान पर बैकअप दें। यह ट्रैक करना आसान होगा कि कौन सी फाइल कौन सी है ...

8. अंतिम बात - यह देखने के लिए जांचें कि क्या आपके पास एक या दोनों मशीनों पर फ़ाइल /etc/sudo.conf है। यदि ऐसा है, तो दोनों फ़ाइलों की एक प्रति बनाएँ और उन्हें एक मशीन पर ले जाएँ। रन

 diff sudo.conf.machine1 sudo.conf.machine2

कॉन्फ़िगरेशन अंतर देखने के लिए। सभी डेल्टास को खोजने के लिए / etc / sudoers फ़ाइल (diff का उपयोग करके) के साथ भी ऐसा ही करें


बहुत बढ़िया विचार, धन्यवाद! मैंने डबल-चेक किया, हालांकि, और मैं (मुख्य उपयोगकर्ता के रूप में) दोनों मशीनों पर सटीक एक ही / आदि / sudoers स्थिति है। मैंने अधिक जानकारी के साथ अपना प्रश्न अपडेट किया है।
Borea Deitz

id कुछ दिलचस्प हुआ। उबंटू 14.04 मशीन पर, मारविन है uid=999, यह दर्शाता है कि उनका खाता एक सिस्टम उपयोगकर्ता के रूप में बनाया गया था। कुबंता 16.04 मशीन पर, उसके पास है uid=1001, एक सामान्य उपयोगकर्ता खाता। इस अंतर के लिए खाता होगा?
Borea Deitz

मुझे इस बात की जानकारी नहीं है कि इससे क्या फर्क पड़ेगा - जैसा कि मैं सबसे अच्छा कह सकता हूं कि मुझे ऐसा नहीं करना चाहिए। किसी भी अन्य निष्कर्ष - sudoers फ़ाइल, समूह सदस्यता आदि बढ़ रहा है?
Argonauts

passwd --status दिखाया है मारविन था NP एक पर स्थिति और L दूसरे पर। मैं बदल गया L सेवा मेरे NP इसलिए दोनों का मिलान होगा, लेकिन इससे कोई फर्क नहीं पड़ा। मैंने sudoers फ़ाइलों (# 7) को स्विच नहीं किया, लेकिन मैंने किया diff उन्हें और वे ठीक वैसी ही फ़ाइल हैं, सिवाय इसके कि कुबंटु प्रणाली है /snap/bin डिफ़ॉल्ट में जोड़ा गया secure_path। इसके अलावा, दो मशीनों के बीच कोई अंतर नहीं है।
Borea Deitz

सभी डिफॉल्ट का उपयोग करके 16.04 मशीन पर एक भगोड़ा खाता जोड़ने का प्रयास करें: 'sudo useradd लुभाने वाला'। देखें कि क्या आप उस खाते के साथ 'sudo -u मोहक स्क्रिप्टनाम' कर सकते हैं। यह कम से कम आपको बताएगा कि क्या यह सिस्टम कॉन्फिग इश्यू है या मारविन कॉन्फिग इश्यू है।
Argonauts
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.