क्या यह निर्दिष्ट करने का कोई तरीका है कि sudoकेवल निर्दिष्ट आदेशों के लिए कुछ पर्यावरण चर को संरक्षित करना चाहिए? कुछ उद्देश्यों के लिए मैं अपने $HOMEenv को पसंद करूँगा । जब मैं कुछ आदेश चलाता हूं तो चर संरक्षित रहता है। अन्य उद्देश्यों और अन्य आदेशों के लिए, मैं इसे रीसेट करना चाहता हूं। क्या इसके साथ किया जा सकता है /etc/sudoers?
संपादित करें:
उत्तर देने के लिए आपको धन्यवाद। मुझे आश्चर्य है कि अगर मैं एक अनुवर्ती प्रश्न पूछ सकता हूं, जो "क्यों, फिर, यह काम नहीं करता है?"
उदाहरण में, मैं काम करने की कोशिश कर रहा हूं, मैं sudo nanoअपना पढ़ना चाहता हूं $HOME/.nanorc। अगर मैं इसका उपयोग करता हूं:
Defaults:simon env_keep=HOME
यह पूरी तरह से काम करता है। अगर मैं इसका उपयोग करता हूं:
Defaults!/bin/nano env_keep=HOME
या यह:
Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano
Defaults!NANO env_keep=HOME
यह बिल्कुल काम नहीं कर रहा है। किसी भी सुझाव के रूप में क्यों? (मैं डेबियन परीक्षण पर हूँ, btw।)
(ध्यान दें: मुझे नहीं लगता कि यह nanoविशिष्ट है, btw - मैं एक-लाइन बैश स्क्रिप्ट के साथ व्यवहार को पुन: पेश कर सकता हूं जो बस echoएस है $HOME)।
sudoअपने खुद के एक समारोह के साथ लपेट रहा हूं , मैंने बस एक if [ "$1" == "$EDITOR" ]; thenब्लॉक जोड़ा है और अब sudoeditइसके बजाय कॉल कर रहा हूं :)
sudoeditइसके बजाय उपयोग करें ।sudoeditकिसी फ़ाइल की सामग्री को tmp फ़ाइल में कॉपी करेगा और आपकी पसंद के संपादक को आपके उपयोगकर्ता के रूप में चलाएगा, जब संपादक बाहर निकलता है तो यह जाँच करेगा कि क्या आपने कुछ बदला है और यदि ऐसा है तो संपादित किए गए के साथ मूल को बदलें। आप चुन सकते हैं कि आप कौन सा संपादक चाहते हैं$EDITORया $ VISUAL` env var सेट करके चलाएं।