कैसे sudo के साथ उपयोग के लिए चर निर्यात करने के लिए?


24

स्लैकवेयर पर, sbopkgस्रोत से पैकेज बनाने के लिए परमिट का उपयोग करना। रिपन डेबियन के रूप में बड़ा नहीं है, लेकिन यह अच्छा है।

कुछ सॉफ़्टवेयर पर्यावरण चर का उपयोग कर सकते हैं, उदाहरण के लिए VICE c64 एमुलेटर पर, यदि चर FFMPEGसेट है yes, तो यह ffmpegएमुलेटर को रिकॉर्ड करने में सक्षम होगा ।

मैंने इस्तेमाल करने की कोशिश की

$ export FFMPEG=yes; sudo sbopkg -B -i vice

लेकिन ffmpegअक्षम है।

इसके बजाय मुझे उपयोग करना था

$ su -
$ export FFMPEG=yes
$ sbopkg -B -i vice

जो काम करता है।

पर्यावरण चर का उपयोग कैसे करें sudo?

जवाबों:


39

आप sudo के -Eविकल्प का उपयोग कर सकते हैं :

FMPEG=yes sudo -E sbopkg -B -i vice

मैनुअल से:

-ई, --प्रदर्शन-एन.वी.

सुरक्षा नीति को इंगित करता है कि उपयोगकर्ता अपने मौजूदा पर्यावरण चर को संरक्षित करना चाहता है। यदि उपयोगकर्ता के पास पर्यावरण को संरक्षित करने की अनुमति नहीं है, तो सुरक्षा नीति में कोई त्रुटि हो सकती है।

ध्यान दें कि यह आपके सभी मौजूदा पर्यावरण चर का निर्यात करता है । यह निम्नलिखित सिंटैक्स के साथ केवल आवश्यक पर्यावरण चर का निर्यात करना सुरक्षित है :

sudo FMPEG=yes sbopkg -B -i vice


धन्यवाद, लेकिन यह काम नहीं करता है (।-ई विकल्प) दूसरी पंक्ति ठीक है, क्योंकि पहले उत्तर मैं सही के रूप में चयन करता हूं।
एलबरना

11

sudoदिए गए आदेश को लागू करने से पहले पर्यावरण में चर को साफ करता है। आपको इसे अपने आदेश में काम करने के लिए पर्यावरण में चर को संरक्षित करने के लिए पूछना होगा।

इसके अतिरिक्त, आपको ( ) का उपयोग करने exportसे FMPEGपहले वैरिएबल करना होगा , इसे एक ही गो में इनवॉइस ( ), या उपयोग ( ) के रूप में असाइन करें ।sudoexport FMPEG=yes; sudosudoFMPEG=yes sudoenvenv FMPEG=yes sudo

पर्यावरण चर को संरक्षित करने के लिए, -E(या --preserve-env) का उपयोग करें :

$ env FMPEG=yes sudo -E sbopkg -B -i vice

इस तरह विशिष्ट वातावरण चर सेट करना भी संभव है:

$ sudo FMPEG=yes sbopkg -B -i vice

यदि यह सुरक्षा नीति के कारण विफल हो जाता है, तो एक मूल शेल लाएँ और वहाँ चर सेट करें:

$ sudo -s
# env FMPEG=yes sbopkg -B -i vice
# exit

6

ध्यान दें कि: (export a=b; command)के बराबर है a=b command। कोष्ठक पर ध्यान दें।

तब यदि हम वैरिएबल को लागू करते हैं , sudoलेकिन प्रत्यक्ष नहीं करते हैं sbopkg, तो इसके बजाय FFMPEG=yes sudo sbopkg -B -i vice हम कर सकते हैं sudo FFMPEG=yes sbopkg -B -i vice

यदि कोई सुरक्षा पुलिस इसे रोकती है, तो: sudo bash -c "FFMPEG=yes sbopkg -B -i vice"

(उपयोग न करें -E, यह हमें असुरक्षित बनाता है क्योंकि यह सभी प्रकार के अनपेक्षित चरों को लीक कर देगा।)

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