मैं रूट के लिए लगातार पर्यावरण चर कैसे सेट करूं?


40

लगातार पर्यावरण चर बनाने के लिए, मैं स्क्रिप्ट फ़ाइल को /etc/profile.d निर्देशिका में जोड़ता हूं, उदाहरण के लिए:

# मेरी स्क्रिप्ट
निर्यात MY_VAR = var_value

यह वर्तमान उपयोगकर्ता के लिए ठीक से काम करता है:

एलेक्स @ एलेक्स -64: ~ $ गूंज $ MY_VAR
var_value

अब मुझे रूट उपयोगकर्ता के लिए समान वातावरण चर की आवश्यकता है, लेकिन /etc/profile.d स्क्रिप्ट रूट के लिए काम नहीं करती है:

एलेक्स @ एलेक्स -64: ~ $ गूंज $ MY_VAR
var_value
एलेक्स @ एलेक्स -64: ~ $ सुडो सु
रूट @ एलेक्स -64: / होम / एलेक्स # इको ​​$ MY_VAR

जड़ @ एलेक्स -64: / घर / एलेक्स # 

मैं रूट के लिए समान चर कैसे सेट कर सकता हूं?


2
यह सवाल है कि कॉलिंग के वातावरण से किसी विशेष चर को कैसे संरक्षित किया जाए, जब sudoयह बहुत संबंधित है। (लेकिन यह डुप्लिकेट नहीं है क्योंकि यह सवाल रूट के अपने वातावरण को कैसे अनुकूलित किया जाए, इस बारे में है।)
एलियाह कगन

जवाबों:


44

सुडो आमतौर पर स्थानीय पर्यावरण चर को संरक्षित नहीं करता है। आपको ऐसा करने के लिए -Eस्विच के साथ इसका उपयोग करना चाहिए , अर्थात रूट के लिए $ MYVARsudo -E su को संरक्षित करना होगा ।

वैकल्पिक रूप से, निरंतर चर बनाने के लिए जो वास्तव में सिस्टम-वाइड हैं, आपको उन्हें सेट करना चाहिए /etc/environment


14
काम नहीं करता है, / etc / environemnt चर
सुडोकू के

3
@ FredericYesidPeñaSANchez यह मेरे लिए CentOS पर किया था। आप वहां स्क्रिप्ट नहीं करते हैं, आप बस प्रत्येक लाइन पर सरल असाइनमेंट करते हैं, अर्थातFOO=bar
iamyojimbo

10

जैसे प्रक्रिया आप अपने स्वयं के पर्यावरण चर को परिभाषित करते हैं, उदाहरण के लिए '~ / .bashrc' को संपादित करके, आप '/root/.bashrc' को संपादित करके रूट के पर्यावरण चर को परिभाषित कर सकते हैं।


8

Defaults env_resetमें /etc/sudoersजड़ रीसेट कर देगा है PATHद्वारा परिभाषित किया गया /etc/environment

आप इसे Defaults !env_resetरीसेट करने या जोड़ने के लिए अक्षम कर सकते हैं:

Defaults secure_path="my/custom/path:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin

अगर मैं दूसरे समाधान का उपयोग करना चाहता हूं (इसका मतलब Secure_path में पथ जोड़ें), तो कुंजी क्या है ?! रास्ता सिर्फ मूल्य है। मैं जड़ के लिए पर्यावरण चर में ANDROID_NDK जोड़ना चाहता हूं। तो अभी के लिए, मैं सिर्फ पहले एक (! Env_reset) का उपयोग कर रहा हूँ। धन्यवाद।
डॉ.अजकी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.