स्क्रिप्ट को रूट से अलग उपयोगकर्ता के रूप में चलाएं [बंद]


11

रूट उपयोगकर्ता से, मैं किसी अन्य उपयोगकर्ता को फ़ाइल /root/script.sh को निष्पादित करने की अनुमति कैसे दे सकता हूं?

स्क्रिप्ट को चलाने का विचार है sudo -u user1 /root/script.sh


1
सवाल पूरी तरह से स्पष्ट नहीं है: "आपके रूट हैं और स्क्रिप्ट को user1 के रूप में चलाना चाहते हैं" या "आप user1 हैं और स्क्रिप्ट को रूट के रूप में चलाना चाहते हैं"? यदि पहला मामला है, sudoतो आपके द्वारा लिखी गई कमांड में क्या समस्या है ?
माइक्स

बाहर की जाँच करेंsu(1)
vonbrand

जवाबों:


11

मुझे कहना चाहिए कि मुझे कभी पसंद नहीं आया sudo(विशेषकर इसके विन्यास)। सादा पुराना su:

su -c 'command' - user

रूट से निष्पादित, यह पासवर्ड के लिए संकेत नहीं देगा।


0

उपयोगकर्ता के पास होना चाहिए

  1. संपूर्ण निर्देशिका पथ के लिए अनुमति निष्पादित करें ( /rootकेवल यहां )

  2. फ़ाइल के लिए अनुमति निष्पादित करें

  3. फ़ाइल के लिए अनुमति पढ़ें

यह /rootअछूता छोड़ने और इस उद्देश्य के लिए एक अलग निर्देशिका बनाने (या उपयोग) करने के लिए एक अच्छा विचार हो सकता है (जैसे /usr/local/bin)। आप user1केवल उसी उपयोगकर्ता को बना सकते हैं जिसे स्क्रिप्ट को फ़ाइल का स्वामी बनाकर या rootमालिक और समूह के रूप में छोड़ने की अनुमति है, सरल एक्सेस अनुमतियों ( chmod) को सेट करें 770और user1ACLs ( setfacl) के साथ जोड़ें ।


0

यदि आपकी लिपि रूट डाइर में स्थित है, तो

$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar  5 20:14 /root

user1 केवल जड़ हो सकता है।

आपकी /etc/sudoersप्रविष्टि दिखेगी

Cmnd_Alias SCRIPT=/root/script.sh

# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT

आप सामान्य रूप से फ़ाइल को संपादित करेंगे visudo

फिर आपको -u rootअपने sudoकमांड में डालने की भी आवश्यकता नहीं है ।

%उपयोगकर्ता समूह का मतलब है। जब आप इसे छोड़ देते हैं तो केवल उपयोगकर्ता को कमांड निष्पादित करने की अनुमति होती है। यदि आप उपयोगकर्ताओं के एक समूह को निष्पादित करना चाहते हैं, तो इसे छोड़ दें।

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