मैं पेटीएम या अन्य पर्यावरण चर कैसे सेट करूं ताकि एक्स ऐप इसे एक्सेस कर सकें?


16

मैं कैसे एन वी चर सेट कर सकता हूं ताकि केडीई उन्हें पहचानता है?

आप गैर-शेल वातावरण (KDE) में पथ कैसे सेट करते हैं?

उपरोक्त दो प्रश्नों के विपरीत, मैं यह जानना चाहता हूं कि गनोम के लिए यह कैसे करना है। या बेहतर अभी तक, वहाँ एक विधि है जो खिड़की प्रबंधक से स्वतंत्र है। शेल / टर्मिनल के लिए, मैं आमतौर पर संपादित करता हूं ~/.bashrc। मैं निर्यात विवरण कहां रख सकता हूं ताकि सभी एक्स अनुप्रयोगों के लिए पर्यावरण चर उपलब्ध हों, कोई फर्क नहीं पड़ता कि विंडो मैनेजर का उपयोग किया जाए?

जवाबों:


12

Pam_env पीएएम मॉड्यूल आपको उन में या तो सेट है /etc/environmentया में ~/.pam_environment, चाहे आप यह सभी उपयोगकर्ताओं (प्रणाली चौड़ा) के लिए चाहते हैं पर निर्भर करता है, या बस अपने उपयोगकर्ता (-सत्र में)।

सिस्टम-वाइड वातावरण चर

पर्यावरण चर सेटिंग्स जो सिस्टम को एक पूरे के रूप में प्रभावित करती हैं (बल्कि सिर्फ एक विशेष उपयोगकर्ता) को कई सिस्टम-स्तरीय स्क्रिप्ट में नहीं रखा जाना चाहिए, जो सिस्टम या डेस्कटॉप सत्र लोड होने पर निष्पादित हो जाते हैं, लेकिन

/etc/environment- यह फाइल विशेष रूप से सिस्टम-वाइड एनवायरनमेंट वेरिएबल सेटिंग्स के लिए है। यह एक स्क्रिप्ट फ़ाइल नहीं है, बल्कि इसमें असाइनमेंट एक्सप्रेशंस, प्रति पंक्ति एक है। विशेष रूप से, यह फ़ाइल सिस्टम-वाइड लोकेल और पथ सेटिंग्स को संग्रहीत करती है।

सत्र-व्यापी परिवेश चर

पर्यावरण चर सेटिंग्स जो एक विशेष उपयोगकर्ता को प्रभावित करना चाहिए (बल्कि एक पूरे के रूप में सिस्टम) में सेट किया जाना चाहिए:

~/.pam_environment- यह फाइल विशेष रूप से उपयोगकर्ता के वातावरण को सेट करने के लिए है। यह एक स्क्रिप्ट फ़ाइल नहीं है, बल्कि इसमें असाइनमेंट एक्सप्रेशंस, प्रति पंक्ति एक है।

नोट: .pam_environmentवेरिएबल्स को इनिशियलाइज़ करने के लिए री-लॉगइन का उपयोग करना आवश्यक है। बस टर्मिनल को पुनः आरंभ करना चर का उपयोग करने में सक्षम होने के लिए पर्याप्त नहीं है।

पर्यावरण चर पर उबंटू की विकी पर अधिक देखें ।


2
~/.pam_environmentसमाधान के साथ समस्या यह है कि डिफ़ॉल्ट रूप से pam_env मॉड्यूल इसे नहीं पढ़ता है, जब तक कि वितरण इसे अन्यथा कॉन्फ़िगर नहीं करता है। फेडोरा 20 पर इसे उदाहरण के लिए नहीं पढ़ा गया है।
क्रिस्टियन सियुपिटु

@CristianCiupitu सही है। ~/.xsessionएक्स अनुप्रयोगों के लिए पर्यावरण चर लोड होगा। देखें unix.stackexchange.com/questions/47359/what-is-xsession-for
Tek

@CristianCiupitu: आपकी टिप्पणी के लिए बहुत बहुत धन्यवाद जो मुझे pam_env तक ले गया। मैंने उपयोगकर्ता वातावरण को सक्षम करने के लिए अपनी फेडोरा 24 pam फ़ाइलों को अद्यतन किया। अब मेरे Wayland सत्रों में एक कस्टम PATH फिर से है।
ज़ैन लिंक्स

@CristianCiupitu क्या यह सच है? प्रलेखन linux-pam.org/Linux-PAM-html/sag-pam_env.html का अर्थ है कि ~ /। Pam_environment डिफ़ॉल्ट फ़ाइल है जब तक कि अन्यथा निर्दिष्ट न हो। लाइन पर देखें user_envfile=filename। Pam_env के साथ मेरी समस्या यह है कि PAM अनुप्रयोग के आधार पर गृह चर उपलब्ध नहीं हो सकता है। जो इसके उपयोग को केवल पूर्ण चर तक सीमित करता है।
CMCDragonkai

2
@CMCDragonkai, Fedora का pam_env (8) मैन पेज कहता था: " डिफ़ॉल्ट रूप से यह विकल्प बंद है क्योंकि PAM वातावरण में उपयोगकर्ता द्वारा प्रदत्त पर्यावरण चर सिस्टम व्यवस्थापक की सहमति के बिना स्टैक में बाद के मॉड्यूल के व्यवहार को प्रभावित कर सकते हैं" । इसलिए जबकि अपस्ट्रीम PAM मॉड्यूल में कुछ डिफ़ॉल्ट सेटिंग्स हैं, कुछ वितरण उन्हें अधिलेखित कर देते हैं।
क्रिस्टियन सियुपिटु

1

/etc/X11/Xsession.d/... या उस निर्देशिका की तर्ज पर, आपके लिनक्स (?) पर निर्भर करता है। मैंने यहाँ पर थोड़ा लिखा ।

अवधारणा यह है कि लॉगिन के बाद, एक प्रदर्शन प्रबंधक एक "Xsession" और स्रोत (!) को उस निर्देशिका में सब कुछ वर्णानुक्रम में शुरू करता है। आप बस एक स्क्रिप्ट जोड़ सकते हैं जो PATH को संशोधित करता है। Xsession अप्रत्यक्ष रूप से आपका DE होगा और आमतौर पर सभी प्रक्रियाएँ उस Xsession के बच्चे होते हैं, इसलिए PATH पर्यावरण को विरासत में मिला है।


क्या कोई समतुल्य है जो मैं अपनी $ होम निर्देशिका में सेट कर सकता हूं? .Xsession की तरह?
संहिता-गुरु

Xession (5) के अनुसार: /etc/X11/Xsession.d/40x11-common_xsessionrc स्रोत वैश्विक पर्यावरण चर। यदि फ़ाइल मौजूद है, तो यह स्क्रिप्ट $ HOME / .xsessionrc में कुछ भी स्रोत देगी। यह उपयोगकर्ता को अपने X सत्र के लिए वैश्विक पर्यावरण चर सेट करने की अनुमति देता है, जैसे स्थानीय जानकारी।
बनंगुइन

1

एक प्रक्रिया मूल प्रक्रिया से एक वातावरण प्राप्त करती है जो इसे शुरू करती है। एक बच्चे में पीएटीएच या अन्य पर्यावरण मूल्यों को बदलने के लिए, हम माता-पिता में एक मूल्य के लिए एक चर सेट कर सकते हैं, और चर का निर्यात कर सकते हैं यदि हम एक शेल में हैं, और फिर बच्चे की प्रक्रिया शुरू करें। बच्चा अपने परिवेश को शुरू करने के लिए एक या एक से अधिक आरंभीकरण फ़ाइलें भी पढ़ सकता है।

तो, उत्तर पाने के लिए दो और प्रश्न हैं:

पेरेंट / चाइल्ड इनहेरिटेंस ट्री क्या है जो उस प्रक्रिया की ओर जाता है जिसे आप पैथ या पर्यावरण परिवर्तन से प्रभावित करना चाहते हैं?

उस पेड़ में संबंधित प्रक्रियाओं द्वारा आरंभिक फ़ाइलों का क्या उपयोग किया जाता है / पढ़ा जाता है?

यहाँ पीएस (1) के उत्पादन का एक हिस्सा है जो यह दर्शाता है कि मुझे विरासत के पेड़ से क्या मतलब है:

# /bin/ps -o 'uid:5,pid:5,ppid:5,user:4,args' axf 

UID   PID  PPID USER COMMAND
  0     1     0 root /usr/lib/systemd/systemd
  0  1481     1 root /usr/sbin/gdm-binary -nodaemon
  0  1497  1481 root  \_ /usr/libexec/gdm-simple-slave ...
  0  1504  1497 root      \_ /usr/bin/Xorg :0 ...
  0  1855  1497 root      \_ gdm-session-worker ...

\ _ ग्राफिक सीक्वेंस और PIP / PPID नंबर (प्रोसेस आईडी और पेरेंट PID) पर ध्यान दें। PID 1855 की शुरुआत (14 के कुछ बच्चे?) 1497 द्वारा की गई थी, जिसे 1481 द्वारा शुरू किया गया था, जिसे PID 1 द्वारा शुरू किया गया था, जो कि पूर्वज प्रक्रिया 0 द्वारा शुरू किया गया था।

आप जिस प्रक्रिया को प्रभावित करना चाहते हैं, उसके लिए एक समान विरासत का पता लगाएँ, यह पता लगाएँ कि कौन सी आरंभीकरण फ़ाइलें प्रासंगिक हैं, और उस पेड़ में कहीं-कहीं पाथ का परिवर्तन कर सकते हैं, शायद कुछ इसी तरह के साथ:

PATH=${PATH}:/usr/local/bin

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