क्या यह निर्दिष्ट करने का कोई तरीका है कि sudo
केवल निर्दिष्ट आदेशों के लिए कुछ पर्यावरण चर को संरक्षित करना चाहिए? कुछ उद्देश्यों के लिए मैं अपने $HOME
env को पसंद करूँगा । जब मैं कुछ आदेश चलाता हूं तो चर संरक्षित रहता है। अन्य उद्देश्यों और अन्य आदेशों के लिए, मैं इसे रीसेट करना चाहता हूं। क्या इसके साथ किया जा सकता है /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 सेट करके चलाएं।