আমার লিনাক্স সিস্টেমের অধীনে সবার জন্য পরিবেশের পরিবর্তনশীল কীভাবে সেট করবেন?


132

আমার কি এমন কিছু সেটিংস থাকতে পারে যা আমার সমস্ত ব্যবহারকারীর জন্য সার্বজনীন?


2
এটা কি রফতানি? এটি যুক্ত করুন এবং এটি বিশ্বব্যাপী?
টাইমেক্স

আমি মনে করি এটি কেবল বর্তমান অধিবেশনে সংযোজনযোগ্য, আপনি যখন টার্মিনালে নতুন অধিবেশন খুলবেন তখন তা অদৃশ্য হয়ে যাবে
হরিয়ানো সারিপুত্র

উত্তর:


104

পাশাপাশি /etc/profileঅন্যরা উল্লেখ করেছে যে, কিছু লিনাক্স সিস্টেম এখন ডিরেক্টরি ব্যবহার করে /etc/profile.d/; .shসেখানে যে কোনও ফাইলই উত্সাহিত হবে /etc/profile। এই ফাইলগুলিতে কেবল সম্পাদনা করার চেয়ে আপনার কাস্টম এনভায়রনমেন্ট স্টাফ রাখার বিষয়টি সামান্যতম /etc/profile


4
কিছু ব্যবহারকারী যদি zsh এর মতো অন্য শেল ব্যবহার করেন?
ম্যাথিউ নাপোলি

70
এটি বিশ্বব্যাপী নয় ... এটি শেলের মধ্যেই সীমাবদ্ধ ... খুব খারাপ এটি সর্বাধিক গৃহীত উত্তর
মিমি

1
zsh /etc/profile.d/ এ .sh ফাইলগুলি উত্স করবে, আপনি এটি / etc / zshrc থেকে দেখতে পারবেন @ ম্যাথিউ নাপোলি
বিলি

4
মূল ব্যবহারকারীর জন্য স্ক্রিপ্ট ব্যবহার করা হয় না।
Val,

63

আপনার লিনাক্সের এই ফাইলটি থাকলে:

/etc/environment

আপনি এটি ব্যবহারকারীর জন্য স্থায়ীভাবে পরিবেশগত পরিবর্তনশীল সেট করতে ব্যবহার করতে পারেন।

থেকে নেওয়া হয়েছে: http://www.sysadmit.com/2016/04/linux-variables-de-entorno-permanentes.html


আমার পক্ষেও কুবুন্টু
জেরুস

38

পুরুষ 8 পাম_এএনভি

man 5 pam_env.conf

যদি সমস্ত লগইন পরিষেবাদিগুলি PAM ব্যবহার করে এবং সমস্ত লগইন পরিষেবাদিগুলির session required pam_env.soস্ব স্ব /etc/pam.d/*কনফিগারেশন ফাইলগুলিতে থাকে, তবে সমস্ত লগইন সেশনের কিছু pam_envকনফিগারেশন ফাইলের কনফিগারেশন ফাইলে উল্লিখিত কিছু পরিবেশ পরিবর্তনশীল থাকবে ।

অধিকাংশ আধুনিক লিনাক্স ডিস্ট্রিবিউশন, এই ডিফল্ট ভাবে সব আছে - শুধু আপনার পছন্দসই বিশ্বব্যাপী বিভিন্ন পরিবেশের যোগ /etc/security/pam_env.conf

এটি ব্যবহারকারীর শেল নির্বিশেষে কাজ করে এবং গ্রাফিকাল লগইনগুলির জন্যও কাজ করে (যদি xdm / kdm / gdm / প্রবেশ /… এটির মতো সেট আপ করা থাকে)।


1
+1 আপনাকে pam_env.conf কারনে একটি ভেরিয়েবল যুক্ত করার পরে তাত্ক্ষণিকভাবে ফ্লাইতে oot প্রতিধ্বনি $ ভেরিয়েবলের

9
আপনাকে পুনরায় বুট করার দরকার নেই, আপনাকে পুনরায় ইন-ইন করতে হবে। (আমার জন্য কোনও সমালোচনামূলক সার্ভার পুনরায় চালু করা হয়নি)
লন্ডন হোয়াইট

এটি আমার ডিস্ট্রোতে লাগবে না বলে মনে হচ্ছে, পুদিনা 17.2। প্রাক-ইনস্টল করা ফাইলটি সম্পূর্ণরূপে মন্তব্য করা হয় এবং আমি যদি কিছু যুক্ত করে echo foo>/home/me/barপুনরায় বুট করি (এবং আবার লগইন করি) তবে সেই ফাইলটি তৈরি হয় না। (এটি পরীক্ষা করার সম্ভবত আরও মার্জিত উপায় আছে তবে আমি এখানে মন্তব্য করার আগে নিশ্চিত হতে চেয়েছিলাম))
মাইকেল শেপার

16

আশ্চর্যজনকভাবে, ইউনিক্স এবং লিনাক্সের আসলে বিশ্বব্যাপী পরিবেশের ভেরিয়েবলগুলি সেট করার কোনও জায়গা নেই। আপনি যেটা করতে পারেন তা হ'ল কোনও নির্দিষ্ট শেলটির জন্য সাইট-নির্দিষ্ট সূচনা করার ব্যবস্থা করা।

আপনি যদি এটি রাখেন তবে এটি /etc/profileবেশিরভাগ পিক্সিক সামঞ্জস্যপূর্ণ শেল ব্যবহারকারীদের জন্য জিনিসগুলির যত্ন নেবে। অ-সমালোচনামূলক উদ্দেশ্যে এটি সম্ভবত "যথেষ্ট ভাল"।

তবে একটি cshবা tcshশেল সহ যে কেউ এটি দেখতে পাবেন না এবং আমি বিশ্বাস করি না যে cshএকটি বৈশ্বিক আরম্ভের ফাইল রয়েছে।


8
/etc/environmentমূলত আমার জন্য পরিবেশের ভেরিয়েবলগুলি সেট করে বলে মনে হচ্ছে, এমনকি মূল ব্যবহারকারী হিসাবে। আমি জানি যে /etc/environmentএটি অ্যামাজন লিনাক্স এবং উবুন্টুতে রয়েছে। আমি csh, tcsh, বা zsh এর জন্য কাজ করে কিনা তা পরীক্ষা করে দেখতে পেলাম না।
জর্দান স্টুয়ার্ট

এটি আপনি যে শেলটি ব্যবহার করছেন তা সুনির্দিষ্ট নয়, এটি সত্যই বিশ্বব্যাপী
জেরুস

9

ব্যাশ ম্যানপেজ থেকে কিছু আকর্ষণীয় অংশ:

যখন বাশকে একটি ইন্টারেক্টিভ লগইন শেল বা বিকল্প হিসাবে একটি ইন্টারেক্টিভ শেল হিসাবে ডাকা হয় --login, এটি প্রথমে ফাইল থেকে কমান্ডগুলি পড়ে এবং কার্যকর করে /etc/profile, যদি সেই ফাইলটি বিদ্যমান থাকে। যে ফাইল পড়ার পর, এটা জন্য দেখায় ~/.bash_profile, ~/.bash_loginএবং ~/.profile, যাতে, এবং পড়ে এবং প্রথম এক যে বিদ্যমান এবং পাঠযোগ্য থেকে, executes কমান্ড। --noprofileবিকল্প ব্যবহার করা যেতে পারে যখন শেল এই আচরণ বাধা হতে শুরু করেছে।
...
যখন কোনও ইন্টারেক্টিভ শেল যা লগইন শেল নয় এটি শুরু করা হয়, বাশ এই ফাইলগুলি উপস্থিত থাকলে /etc/bash.bashrcএবং কমান্ডগুলি পাঠ করে এবং কার্যকর করে ~/.bashrc--norcবিকল্পটি ব্যবহার করে এটি বাধা দেওয়া হতে পারে । দ্য--rcfileফাইল বিকল্প পড়া এবং পরিবর্তে ফাইল থেকে কমান্ড চালানো ব্যাশ বাধ্য করা হবে /etc/bash.bashrcএবং ~/.bashrc

তাই দেখুন /etc/profileবা /etc/bash.bashrcএই ফাইলগুলি বিশ্বব্যাপী সেটিংসের জন্য সঠিক স্থান places একটি পরিবেশগত ভেরিয়েবল সেট আপ করতে তাদের মধ্যে এ জাতীয় কিছু রাখুন:

export MY_VAR=xxx

নোট করুন যে ক্লাসিক ইউনিক্স সিস্টেমে, বোর্ন শেল এবং কর্ন শেল উভয়ই / ইত্যাদি / প্রোফাইল পড়েন - এটি সম্ভবত সিস্টেম পরিবেশের সেটিংয়ের জন্য বহুল ব্যবহৃত স্থান। সি শেলটির কয়েকটি সংস্করণ প্রতি ব্যবহারকারী ব্যবহারের পাশাপাশি /etc/csh.cshrc এবং /etc/csh.login এ দেখায়; অন্যরা কোনও সিস্টেম এনভায়রনমেন্ট সেটিং ফাইল ব্যবহার করে না।
জোনাথন লেফলার

আশ্চর্যজনক, অ-লগইন শেল ব্যবহারকারীদের জন্য এনভিভ সেট করার জন্য আমি কেবল যা খুঁজছিলাম।
ডেভিড মান

দুঃখিত, আমি ততক্ষণে দুর্ঘটনাক্রমে এটিকে হ্রাস পেয়েছি বলে মনে হচ্ছে যখন কিছুক্ষণের জন্য তীরগুলি দৃশ্যমান ছিল না ... আপনি কি এটিকে সম্পাদন করতে আপত্তি করবেন (উদাহরণস্বরূপ, দ্বিতীয় লাইনের দ্বিতীয় লাইনে টাইপ করুন "এনভায়রনমেন্টমেন্ট") তাই আমি ডাউনটিটি সরিয়ে ফেলতে পারি?
বেনজামিন ডাব্লু।

4

পিএএম ব্যবহার করা ব্যতিক্রমী।

# modify the display PAM
$ cat /etc/security/pam_env.conf 
# BEFORE: $ export DISPLAY=:0.0 && python /var/tmp/myproject/click.py &
# AFTER : $ python $abc/click.py &
DISPLAY  DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}
abc   DEFAULT=/var/tmp/myproject

2

লিনাক্স কার্নেলের অধীনে চলমান প্রতিটি প্রক্রিয়া তার নিজস্ব, অনন্য পরিবেশ পায় যা এটি তার পিতামাতার কাছ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত। এই ক্ষেত্রে, পিতামাতার হয় নিজেই একটি শেল (একটি সাব শেল তৈরি) বা 'লগইন' প্রোগ্রাম (একটি সাধারণ সিস্টেমে) হবে।

প্রতিটি প্রক্রিয়া যেমন পরিবেশ সুরক্ষিত রয়েছে, তেমনি প্রতিটি চলমান প্রক্রিয়াতে পরিবেশগত পরিবর্তনশীল 'ইনজেকশন' দেওয়ার কোনও উপায় নেই, সুতরাং আপনি ডিফল্ট শেল .rc / প্রোফাইলটি সংশোধন করেও প্রতিটি প্রক্রিয়াটি বেরিয়ে না আসা এবং পুনরায় লোড হওয়া অবধি কার্যকর হবে না এর শুরু সেটিংস।

কোনও নির্দিষ্ট শেলের জন্য ডিফল্ট স্টার্ট আপ ভেরিয়েবলগুলি পরিবর্তন করতে / ইত্যাদি / দেখুন / কেবল উপলব্ধি করুন যে ব্যবহারকারীরা তাদের পৃথক সেটিংসে এগুলি পরিবর্তন করতে (এবং প্রায়শই করতে পারেন)।

ইউনিক্স সীমাবদ্ধতার মধ্যে ব্যবহারকারীর আনুগত্যের জন্য ডিজাইন করা হয়েছে।

নোট : বাশ আপনার সিস্টেমে একমাত্র শেল নয় । / Bin / sh প্রতীকী লিঙ্কটি আসলে কীসের দিকে ইঙ্গিত করে সে সম্পর্কে সাবধানতার সাথে মনোযোগ দিন। অনেক সিস্টেমে এটি আসলে ড্যাশ হতে পারে যা ডিফল্টরূপে, কোনও বিশেষ অনুরোধ ছাড়াই) পসিক্সএলআই সঠিক। অতএব, আপনার উভয় ডিফল্ট সংশোধন করার যত্ন নেওয়া উচিত , বা স্ক্রিপ্টগুলি যেগুলি / বিন / শ দিয়ে শুরু হয় আপনার গ্লোবাল ডিফল্টের উত্তরাধিকারী হবে না। একইভাবে, যে শুধুমাত্র এড়ানোর সিনট্যাক্স যত্ন নিতে ব্যাশ বুঝতে পারে যখন উভয় সম্পাদনা, ওরফে avoiding bashisms

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