2013-09-11 4 views
5

मुझे लगता है कि अगर मैं $HOME/path/to/script/myscript में एक खोल स्क्रिप्ट लिखते हैं, और export PATH=$PATH:$HOME/path/to/script/ तो sudo -E myscript सही स्क्रिप्ट चलाना चाहिए?सुडो ई विकल्प काम नहीं करता है?

From sudo man page:

-E -E (पर्यावरण के संरक्षण) विकल्प सुरक्षा नीति है जो उपयोगकर्ता अपने मौजूदा वातावरण चर की रक्षा करना चाहता है के लिए इंगित करता है। यदि सुरक्षा विकल्प निर्दिष्ट किया गया है और उपयोगकर्ता को पर्यावरण को संरक्षित करने की अनुमति नहीं है तो सुरक्षा नीति एक त्रुटि लौटा सकती है।

लेकिन sudo -E script आदेश नहीं मिला। मैं मैं सिर्फ फाइलों कि sudo env के लिए PATH चर निर्धारित करने के लिए /absolute/path/to/script/ जोड़ सकते हैं, लेकिन उस दृष्टिकोण मैं ले जाना चाहते हैं नहीं है।

टिप्पणियों को संबोधित करने के लिए:
@ H2CO3: मैं sudo sudo देखा है शुद्ध के आसपास चल, और यह मेरे काफी कीड़े, यह सचमुच कह रहा है "मुझे सुपर उपयोगकर्ता को चलाने के लिए सुपर उपयोगकर्ता अनुमति प्रदान करें।" मुझे नहीं पता कि यह समस्या का समाधान करेगा या नहीं, लेकिन यह मूल रूप से त्रुटिपूर्ण दृष्टिकोण की तरह लगता है। फिर फिर मैंने 90 के दशक के मध्य में लिनक्स/बीएसडी सिस्टम का उपयोग करना शुरू किया, इसलिए मैं केवल sudo कमांड के साथ समस्या उठाता हूं।
@rici: स्क्रिप्ट निष्पादन अनुमतियाँ करता है, लेकिन है कि जब भी कुछ * nix प्रणालियों में नहीं चलता है निश्चित रूप से कुछ जांच करने का तरीका =)

+0

हो सकता है कि इसे अधिक अनुमतियों की जरूरत है ... कोशिश 'sudo sudo' ... ओह ठीक है ... –

+0

आप सुनिश्चित करें कि आपके स्क्रिप्ट फ़ाइल निष्पादन योग्य है की? – rici

+0

लिनक्स/यूनिक्स के अधिकांश डिस्ट्रोज़ को अब किसी भी 'सामान्य कंप्यूटिंग' कार्य को पूरा करने के लिए सीएलआई की आवश्यकता नहीं है। सिर्फ इसलिए कि सामान्य कंप्यूटिंग के लिए सूडो का उपयोग किया जा सकता है, यह इस उपकरण का प्राथमिक उद्देश्य नहीं बनाता है। पाइथन कैलकुलेटर के रूप में इस्तेमाल किया जा सकता है (और अक्सर), लेकिन यह स्पष्ट रूप से 'सामान्य कंप्यूटिंग सॉफ्टवेयर' नहीं है। मैं उन उपकरणों को निष्पादित करने के लिए सुडो का उपयोग करता हूं जो विशेष रूप से विकास के लिए उपयोगी हैं, और लिपियों को मैंने लिखा है। इस प्रकार, मैं कृपया अनुरोध करता हूं कि आप http://stackoverflow.com/help/on-topic की सामग्री को पुनः प्राप्त करें, http://superuser.com/help/on-topic, या इस प्रश्न को बंद करने का आपका निर्णय विषय। – MishaP

उत्तर

8

/etc/default द्वारा sudoers एक सेटिंग पर्यावरण पुनर्स्थापित करने के लिए है। और जब आप sudo -E [cmd] चलाते हैं तो एक डिफ़ॉल्ट safe_path भी लागू होता है।

आप/etc/sudoers फाइल को संपादित और 'env_keep' जोड़ सकते हैं और उल्लेख करने के लिए चर को संरक्षित करना चाहते की आवश्यकता होगी।

डिफ़ॉल्ट env_keep + = "PATH"

लेकिन यह टिप्पणी secure_path लाइन से पहले। फिर सुडो-ई के माध्यम से अपना आदेश आज़माएं।

+3

'सुरक्षित_पैथ लाइन पर टिप्पणी करें' यह चाल है, धन्यवाद! – MishaP

संबंधित मुद्दे