PATH সেট করা তাই এটি root / sudo সহ সকল ব্যবহারকারীর জন্য প্রযোজ্য


41

নির্দেশাবলী আমি কিভাবে সার্ভারে সকল ব্যবহারকারীর জন্য পাথ ভেরিয়েবল সেট করব? সমস্ত 'সাধারণ' ব্যবহারকারীদের জন্য PATH সেট করার কাজ করুন। তবে, আমি যদি করি sudo -sএবং তারপরে printenv PATHআপডেটের পথটি দেখানো হয় না। উদাহরণস্বরূপ আমি মূলের জন্য টেক্স লাইভ পাথ নির্ধারণ করে দেখেছি , তবে এটি আমার কাছে বোধগম্য মনে হয় না, সম্ভবত আমি উইন্ডোজ ব্যাকগ্রাউন্ড থেকে এসেছি। প্রকৃতপক্ষে সিস্টেম-প্রশস্ত পথ নির্ধারণের জন্য কি কোনও উপায় আছে যেমন এন্টিগুলি সিস্টেমে চলমান প্রতিটি প্রক্রিয়া দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হয়?

উত্তর:


43

হালনাগাদ:

গ্লোবাল এনভায়রনমেন্ট ভেরিয়েবলগুলি সেট করাতে এখনও সঞ্চালন করা উচিত /etc/environment, তবে আপনি যেমন উল্লেখ করেছেন, ব্যবহার করে sudo -sএই ভেরিয়েবলগুলির প্রভাব "অদৃশ্য" হয়ে যায়।

এর কারণটি হ'ল পরিবেশটি পুনরায় সেট করার এবং সুরক্ষিত পথ নির্ধারণের sudoনীতি । এটি ডিফল্টরূপে সক্ষম করা হয়েছে:

/etc/sudoers:

Defaults  env_reset
Defaults  secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

সুতরাং /etc/environmentপথের জন্য যা কিছু সেট করা আছে সেগুলি ওভাররাইড করে sudo

sudoersরাজ্যগুলির জন্য ম্যানুয়াল পৃষ্ঠা :

   env_reset       If set, sudo will reset the environment to only contain
                   the LOGNAME, MAIL, SHELL, USER, USERNAME and the SUDO_*
                   variables.  Any variables in the caller's environment
                   that match the env_keep and env_check lists are then
                   added.  The default contents of the env_keep and
                   env_check lists are displayed when sudo is run by root
                   with the -V option.  If the secure_path option is set,
                   its value will be used for the PATH environment
                   variable.  This flag is on by default.

কার্যকারণ হিসাবে, আপনি এটি ব্যবহার করতে পারেন sudo suযা রুট সুবিধাগুলি সহ শেল সরবরাহ করবে তবে সঠিক প্যাথ রয়েছে।


আসল উত্তর

আপনার এটি সেট করা উচিত /etc/environment

চেষ্টা করুন sudo YOUR_TEXT_EDITOR /etc/environment(প্রথমে একটি ব্যাকআপ তৈরি করার বিষয়টি নিশ্চিত করুন )।

আরও তথ্যের জন্য: পরিবেশগত পরিবর্তনযোগ্য

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

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

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

প্রস্তাবিত নয়:

/etc/profile- এই ফাইলটি যখনই কোনও ব্যাশ লগইন শেল প্রবেশ করা হয় (যেমন কনসোল থেকে লগ ইন করার সময় বা এসএসএসের উপরে) ডেস্কটপ সেশন লোড হওয়ার সাথে সাথে ডিসপ্লে ম্যানেজার দ্বারা কার্যকর করা হয়। পরিবেশের ভেরিয়েবল সম্পর্কে অভিজ্ঞ ইউনিক্স সিস্টেম প্রশাসকদের জিজ্ঞাসা করার সময় এটি সম্ভবত আপনার ফাইলটি উল্লেখ করা হবে। উবুন্টুতে, তবে এই ফাইলটি /etc/bash.bashrc ফাইলটিকে আর কিছু করতে পারে না।

/etc/bash.bashrc- এটি ~ / .bashrc ফাইলের সিস্টেম-ব্যাপী সংস্করণ। যখনই কোনও ব্যবহারকারী শেল বা ডেস্কটপ পরিবেশে প্রবেশ করে তবে এই ফাইলটি কার্যকর করতে উবুন্টু ডিফল্টরূপে কনফিগার করা হয়েছে।


আহ ভাল: আমার কাছে এটি প্রায় সমস্ত ভুল উপায় (প্রত্যেকেরই একই পথ, সময়কালের উত্তরাধিকারী হওয়া উচিত) তবে আমি অনুমান করি ঠিক এটিই এটি।
জোসেফ রাইট

visudoসুরক্ষিত পাথ সেটিংস সম্পাদনা করতে আপনি (রুট অনুমতি প্রয়োজন) ব্যবহার করতে পারেন । এটি কোনও প্রস্তাবিত অনুশীলন নয়। এটি এখানে কেবল শিক্ষার জন্য।
ইলিয়ট ল্যাবগুলি এলএলসি

2

sudo -iএকটি লগইন (একইভাবে sudo su -) সিমুলেট করবে এবং এইভাবে আপনাকে এই পরিবেশের ভেরিয়েবলগুলি দেবে।


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