এক্স অ্যাপ্লিকেশনগুলি এটি অ্যাক্সেস করতে পারে তাই আমি কীভাবে PATH বা অন্যান্য পরিবেশের ভেরিয়েবল সেট করব?


16

কীভাবে এনভিভ ভেরিয়েবলগুলি সেট করতে পারি যাতে কে-ডি-ই তাদের চিনতে পারে?

আপনি কীভাবে একটি শেলবিহীন পরিবেশে (কেডিএ) পথ নির্ধারণ করবেন?

উপরের দুটি প্রশ্নের বিপরীতে, আমি জিনোমের জন্য এটি কীভাবে করব তা জানতে চাই। বা আরও ভাল, উইন্ডো ম্যানেজার থেকে পৃথক একটি পদ্ধতি আছে কি? শেল / টার্মিনালের জন্য, আমি সাধারণত সম্পাদনা করি ~/.bashrc। উইন্ডো ম্যানেজারটি ব্যবহার না করেই সমস্ত এক্স অ্যাপ্লিকেশনের জন্য পরিবেশের ভেরিয়েবলগুলি উপলব্ধ থাকায় আমি রফতানি বিবৃতি কোথায় রাখতে পারি?

উত্তর:


12

Pam_env পিএএম মডিউল আপনাকে তাদের মধ্যে হয় সেট এর /etc/environmentবা ~/.pam_environmentকিনা আপনি এটি সমস্ত ব্যবহারকারীদের (সিস্টেম প্রশস্ত) জন্য চান তার উপর নির্ভর করে, অথবা আপনার ব্যবহারকারী (সেশন-জুড়ে)।

সিস্টেম-ব্যাপী পরিবেশের ভেরিয়েবল

পরিবেশের পরিবর্তনশীল সেটিংস যা পুরো সিস্টেমটিকে প্রভাবিত করে (বরং কেবলমাত্র নির্দিষ্ট ব্যবহারকারী হিসাবে) সিস্টেম বা ডেস্কটপ সেশনটি লোড করার সময় কার্যকর হওয়া অনেকগুলি সিস্টেম-স্তরের স্ক্রিপ্টগুলির মধ্যে কোনওটি রাখা উচিত নয়, তবে এতে

/etc/environment- এই ফাইলটি নির্দিষ্ট করে সিস্টেম-ব্যাপী পরিবেশের পরিবর্তনশীল সেটিংসের জন্য। এটি কোনও স্ক্রিপ্ট ফাইল নয়, বরং লাইন প্রতি এক করে অ্যাসাইনমেন্ট এক্সপ্রেশন নিয়ে গঠিত। বিশেষত, এই ফাইলটি সিস্টেম-বিস্তৃত লোকেল এবং পথের সেটিংস সঞ্চয় করে।

সেশন-ব্যাপী পরিবেশ পরিবর্তনশীল

পরিবেশের পরিবর্তনশীল সেটিংস যা কেবলমাত্র একটি নির্দিষ্ট ব্যবহারকারীর উপর প্রভাব ফেলবে (তারপরে সম্পূর্ণ সিস্টেমটি) এতে সেট করা উচিত:

~/.pam_environment- এই ফাইলটি নির্দিষ্ট করে ব্যবহারকারীর পরিবেশ নির্ধারণের জন্য। এটি কোনও স্ক্রিপ্ট ফাইল নয়, বরং লাইন প্রতি এক করে অ্যাসাইনমেন্ট এক্সপ্রেশন নিয়ে গঠিত।

দ্রষ্টব্য: .pam_environmentভেরিয়েবলগুলি আরম্ভ করার জন্য ব্যবহারের জন্য পুনরায় লগইন প্রয়োজন। ভেরিয়েবলগুলি ব্যবহার করতে সক্ষম হওয়ার জন্য কেবলমাত্র টার্মিনাল পুনরায় চালু করা যথেষ্ট নয়।

এনভায়রনমেন্ট ভেরিয়েবলগুলিতে উবুন্টুর উইকিতে আরও দেখুন ।


2
~/.pam_environmentসমাধানটির সাথে সমস্যাটি হ'ল ডিফল্টরূপে পাম_েনভ মডিউলটি এটি পড়বে না, যদি না তা বিতরণ অন্যথায় কনফিগার করে। ফেডোরা ২০-তে এটি উদাহরণস্বরূপ পড়েনি।
ক্রিশ্চিয়ান সিউপিতু

@ ক্রিশ্চিয়ানসিপিতু ঠিক আছে। ~/.xsessionএক্স অ্যাপ্লিকেশনগুলির জন্য পরিবেশের ভেরিয়েবল লোড করবে। Unix.stackexchange.com/questions/47359/ কি-is
টেক

@ ক্রিশ্চিয়ানসিপিতু: আপনার মন্তব্যের জন্য অনেক ধন্যবাদ যা আমাকে পাম_এনভিতে নিয়ে যায় lead ব্যবহারকারীর পরিবেশ সক্ষম করতে আমি আমার ফেডোরা 24 প্যাম ফাইল আপডেট করেছি। এখন আমার ওয়েল্যান্ডের সেশনগুলির আবার একটি কাস্টম PATH রয়েছে।
ঝ্যান লিংস

পছন্দ করেছেন Linux-pam.org/Linux-PAM-html/sag-pam_env.html ডকুমেন্টেশনটি বোঝায় যে অন্যথায় নির্দিষ্ট না করা থাকলে read / .pam_en पर्यावरण পড়তে হবে ডিফল্ট ফাইল। লাইনটি দেখুন user_envfile=filename। পাম_এনভের সাথে আমার সমস্যা হ'ল পিএম অ্যাপ্লিকেশনটির উপর নির্ভর করে হোম ভেরিয়েবলটি উপলব্ধ নাও হতে পারে। যা এর ব্যবহারকে কেবল পরম ভেরিয়েবলের মধ্যে সীমাবদ্ধ করে।
সিএমসিডিগ্রাগনকাই

2
ফেডোরার পাম_েনভ (৮) ম্যান পেজ সিএমসিডিগ্রাগনকাই বলতেন: " ডিফল্টরূপে এই বিকল্পটি বন্ধ রয়েছে কারণ ব্যবহারকারী প্রশাসকের অনুমতি ব্যতীত পাম পরিবেশে পরিবেশিত পরিবেশের ভেরিয়েবলগুলি স্ট্যাকের পরবর্তী মডিউলগুলির আচরণকে প্রভাবিত করতে পারে" । সুতরাং যখন প্রবাহের পিএএম মডিউলের কিছু ডিফল্ট সেটিংস রয়েছে তখন কিছু বিতরণ সেগুলি ওভাররাইট করে।
ক্রিশ্চিয়ান সিউপিতু

1

/etc/X11/Xsession.d/... অথবা আপনার লিনাক্সের (?) উপর নির্ভর করে সেই ডিরেক্টরিটির লাইন বরাবর রয়েছে। আমি এখানে এটি একটি সামান্য লিখেছে ।

ধারণাটি হ'ল লগইনের পরে, ডিসপ্লে ম্যানেজার একটি "এক্সসিজন" শুরু করে এবং সেই ডিরেক্টরিতে উত্সগুলি (!) সমস্ত বর্ণানুক্রমিক ক্রমে in আপনি কেবল একটি স্ক্রিপ্ট যুক্ত করতে পারেন যা পাঠকে পরিবর্তিত করে। এক্সেসিওনটি অবিস্মরণীয়ভাবে আপনার ডিই হবে এবং সাধারণত সমস্ত প্রক্রিয়াগুলি সেই জ্যাসেসিওনের বাচ্চারা, তাই PATH পরিবেশ উত্তরাধিকার সূত্রে প্রাপ্ত।


আমি কি আমার OME HOM ডিরেক্টরিতে সেট করতে পারি তার সমতুল্য? এক্সেসিওন?
কোড-গুরু

এক্সেশন (5) অনুসারে: /etc/X11/Xsession.d/40x11-common_xsessionrc উত্স বিশ্বব্যাপী পরিবেশ পরিবর্তনশীল। এই স্ক্রিপ্টটি ফাইল উপস্থিত থাকলে anything HOME / .xsessionrc এ যেকোনও উত্স উত্পন্ন করবে। এটি ব্যবহারকারীকে তাদের এক্স সেশনের জন্য গ্লোবাল এনভায়রনমেন্ট ভেরিয়েবলগুলি সেট করতে দেয় যেমন স্থানীয় তথ্য হিসাবে।
বনাঙ্গুইন

1

একটি প্রক্রিয়া পিতামাতার প্রক্রিয়া থেকে এমন পরিবেশের উত্তরাধিকার সূত্রে আসে যা এটি শুরু করে। কোনও সন্তানের মধ্যে PATH বা অন্যান্য পরিবেশের মানগুলি পরিবর্তন করতে আমরা পিতামাতার একটি মানকে একটি ভেরিয়েবল সেট করতে পারি, এবং আমরা যদি শেলটিতে থাকি তবে চলকটি রফতানি করতে পারি এবং তারপরে সন্তানের প্রক্রিয়া শুরু করতে পারি। শিশু তার পরিবেশ শুরু হওয়ার সাথে সাথে পরিবর্তন করতে এক বা একাধিক সূচনা ফাইলও পড়তে পারে।

সুতরাং, উত্তর পেতে আরও দুটি প্রশ্ন রয়েছে:

অভিভাবক / সন্তানের উত্তরাধিকারের গাছটি এমন কী যা আপনাকে PATH বা পরিবেশ পরিবর্তন দ্বারা প্রভাবিত করতে চান এমন প্রক্রিয়াটির দিকে নিয়ে যায়?

গাছের প্রাসঙ্গিক প্রক্রিয়াগুলি দ্বারা কোন সূচনা ফাইলগুলি ব্যবহার / পড়তে / উত্সর্গ করা হয়?

উত্তরাধিকার গাছ দ্বারা আমি কী বোঝাতে চাইছি তা এখানে দেখানোর জন্য এখানে PS (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 ...

Graph _ গ্রাফিক ক্রম এবং পিআইপি / পিপিআইডি নম্বরগুলি (প্রক্রিয়া আইডি এবং প্যারেন্ট পিআইডি) নোট করুন। পিআইডি 1855 (কিছু শিশু?) 1497 দ্বারা শুরু হয়েছিল, যা 1481 দ্বারা শুরু হয়েছিল, যা পিআইডি 1 দ্বারা শুরু হয়েছিল, যা পূর্বপুরুষ প্রক্রিয়া 0 দ্বারা শুরু হয়েছিল।

আপনি যে প্রক্রিয়াটিকে প্রভাবিত করতে চান তার জন্য একই ধরণের উত্তরাধিকারের চিহ্ন করুন, কোন সূচনা ফাইলগুলি প্রাসঙ্গিক তা নির্ধারণ করুন এবং সেই গাছের কোথাও PATH এ পরিবর্তন করুন, সম্ভবত এর অনুরূপ কিছু সহ:

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

আমি কি psজিইউআই লগইনের পিতামাতার প্রক্রিয়াটি নির্ধারণ করতে ব্যবহার করতে পারি ?
কোড-গুরু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.