/ ইত্যাদি / এনভায়রনমেন্ট বনাম। প্রোফাইলে PATH ভেরিয়েবল সেট করা হচ্ছে


58

PATHএনভ্বর সেট করার জন্য পছন্দের জায়গাটি কোথায় ?

~/.profileবা /etc/environment?

PATHউভয় স্থানে সেট করা হলে কী হয় ? শেষের ফলাফলটি কি এই দুটি স্থানে উভয় মানের একটি সংক্ষেপণ সেট করা আছে?


PATH- এ শেষ কার্যভারটি অবশ্যই বিরাজ করছে। বেশিরভাগ স্ক্রিপ্ট স্ক্রিপ্টের শুরুতে এটি সুস্পষ্টভাবে সেট করে।
অ্যালেক্সপি

উত্তর:


70

সারাংশ:

  • আপনি যদি কেবলমাত্র আপনার বর্তমান ব্যবহারকারীর জন্য এবং আপনার কম্পিউটারের সমস্ত ব্যবহারকারীর জন্য নয় তবে /your/additional/pathআপনার PATHচলকটিতে একটি পাথ (উদাহরণস্বরূপ ) যুক্ত করতে চান তবে আপনি সাধারণত ~/.profileএই দুটি উদাহরণের মধ্যে একটির মতো পছন্দ রেখেছিলেন :

    PATH="/your/additional/path:$PATH"
    PATH="$PATH:/your/additional/path"
    

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

  • যাইহোক, আপনার যদি সমস্ত ব্যবহারকারীর জন্য সেই পরিবেশের পরিবর্তনশীল সেট করার দরকার হয় তবে আমি স্পর্শ করার পরেও /etc/environmentফাইলের নামটি শেষ না হওয়া দিয়ে একটি ফাইল তৈরি করার পরামর্শ দেব .shনা /etc/profile.d//etc/profileস্ক্রিপ্ট এবং সমস্ত স্ক্রিপ্ট /etc/profile.dপ্রতিটি ব্যবহারকারীর ব্যক্তিগত বিশ্বব্যাপী হয় সমতুল্য ~/.profileএবং তাদের আরম্ভের সময় সব শাঁস নিয়মিত শেল স্ক্রিপ্ট হিসাবে মৃত্যুদন্ড কার্যকর।


আরো বিস্তারিত:

  • /etc/environmentএকটি সিস্টেম-ব্যাপী কনফিগারেশন ফাইল, যার অর্থ এটি সমস্ত ব্যবহারকারী ব্যবহার করেন। rootযদিও এটি মালিকানাধীন , সুতরাং আপনাকে প্রশাসক ব্যবহারকারী হওয়া দরকার এবং sudoএটি পরিবর্তন করতে ব্যবহার করতে হবে।

  • ~/.profileআপনার নিজস্ব ব্যবহারকারীর ব্যক্তিগত শেল প্রারম্ভিক স্ক্রিপ্টগুলির মধ্যে একটি। প্রত্যেক ব্যবহারকারীর একটি থাকে এবং অন্যকে প্রভাবিত না করে তাদের ফাইল সম্পাদনা করতে পারে।

  • /etc/profileএবং /etc/profile.d/*.shগ্লোবাল ইনিশিয়ালাইজেশন স্ক্রিপ্টগুলি যা ~/.profileপ্রতিটি ব্যবহারকারীর জন্য সমান । যদিও ব্যবহারকারী-নির্দিষ্ট স্ক্রিপ্টগুলির আগে বিশ্বব্যাপী স্ক্রিপ্টগুলি কার্যকর করা হয়; এবং /etc/profileমূলটি সমস্ত *.shস্ক্রিপ্টগুলি বের হওয়ার /etc/profile.d/ঠিক আগেই সম্পাদন করে ।


  • /etc/environmentফাইল সাধারণত শুধুমাত্র এই লাইন রয়েছে:

    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
    

    এটি PATHসিস্টেমের সমস্ত ব্যবহারকারীর জন্য এই ডিফল্ট মানটিতে পরিবর্তনশীল সেট করে যা বড় উপায়ে পরিবর্তন করা উচিত নয়। অন্তত আপনার মত গুরুত্বপূর্ণ পাথ কোন অপসারণ করা উচিত নয় /bin, /sbin, /usr/binএবং /usr/sbinতা থেকে।

    এই ফাইলটি প্রতিটি ব্যবহারকারীর প্রতিটি শেল দ্বারা প্রথম কনফিগারেশন ফাইল হিসাবে পড়া হয়। মনে রাখবেন এটি কোনও শেল স্ক্রিপ্ট নয় । এটি কেবল একটি কনফিগারেশন ফাইল যা কোনওভাবে পার্স হয়ে যায় এবং এতে কেবল পরিবেশের পরিবর্তনশীল অ্যাসাইনমেন্ট থাকতে পারে!

  • ~/.profileফাইল অনেক কিছু থাকতে পারে, ডিফল্ট দ্বারা এটি অন্যান্য উপাদান মধ্যে একটি চেক রয়েছে এমন একটি কিনা ~/binডিরেক্টরির বিদ্যমান এবং ব্যবহারকারীর বিদ্যমান যে যোগ PATHপরিবর্তনশীল (চালু পুরোনো উবুন্টু 16,04 পূর্বে প্রকাশ - নতুন রিলিজের নিঃশর্তভাবে এটি যোগ) এই মত:

    # set PATH so it includes user's private bin if it exists
    if [ -d "$HOME/bin" ] ; then
        PATH="$HOME/bin:$PATH"
    fi
    

    আপনি দেখতে পাচ্ছেন যে পুরানো মানটি PATHএখানে পুনরায় ব্যবহার হয়ে যায় এবং নতুন পথটি সমস্ত কিছু ওভাররাইট করার পরিবর্তে শুরুতে যুক্ত হয়। আপনি যখন ম্যানুয়ালি নতুন পাথ যুক্ত করতে চান তখন আপনার পুরানো $PATHমানটি সর্বদা নতুন স্ট্রিংয়ের কোথাও রাখা উচিত ।

    এই ইনিশিয়ালাইজেশন স্ক্রিপ্টটি কেবলমাত্র এটির ব্যবহারকারীর শেলগুলি দ্বারা পড়ে, তবে অন্য শর্ত রয়েছে:

    # ~/.profile: executed by the command interpreter for login shells.
    # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
    # exists.
    

    সুতরাং আপনি যদি ডিফল্ট ব্যাশ শেল ব্যবহার করেন তবে আপনার অবশ্যই নিশ্চিত হওয়া উচিত যে আপনার ব্যবহারকারীর জন্য কোনও প্রভাব আছে কিনা তা আপনি পরিবর্তন করতে চান না ~/.bash_profileor~/.bash_login~/.profile


পরিবেশের ভেরিয়েবলগুলি সম্পর্কে সম্পূর্ণ বোঝার জন্য দেখুন: https://help.ubuntu.com/commune/En वातावरणीय পরিবর্তনশীল


সম্পর্কিত প্রশ্ন: bash.bashrc এবং / ইত্যাদি / পরিবেশ ফাইলের মধ্যে পার্থক্য


2
আজকাল ~/.profileঅস্তিত্বের জন্য যাচাই করে না ~/bin, তবে এটির লাইনটি কেবল:PATH="$HOME/bin:$HOME/.local/bin:$PATH"
গুনার হজলমারসন

1
@ গুন্নারহালমারসন "আজকাল" সংজ্ঞায়িত করুন, দয়া করে? আমি ১.0.০৪ চালাচ্ছি এবং এটি সেখানে দেখায়।
বাইট কমান্ডার

2
/etc/skel/.profile16.04 এ আমার উল্লেখ করা লাইন রয়েছে line আপনি পূর্ববর্তী প্রকাশে দৃশ্যত আপনার ব্যবহারকারীকে তৈরি করেছেন।
গুনার হেজালমারসন

1
@ গুন্নারহজালমারসন তথ্যের জন্য ধন্যবাদ - প্রায় পাঁচ মিনিট আগে , আমি ভেবেছিলাম ডিফল্টটিতে ~/.profileএখনও এটি ছিল তবে আপনি ঠিক বলেছেন - /etc/skel/.profileএটি আমার আপগ্রেড 16.04 সিস্টেমে নেই (এবং 16.04-এ ইনস্টল করার সময় একটি ব্যবহারকারী অ্যাকাউন্ট তৈরি হয়েছিল) অন্য মেশিনে এটি নেই .profile)।
এলিয়াহ কাগন

2
"... তাদের শুরুর সময় সমস্ত শেল দ্বারা নিয়মিত শেল স্ক্রিপ্ট হিসাবে সম্পাদন করা হয়।" আমি মনে করি এটি বিভ্রান্তিকর। কিছু লোকের পরামর্শ হতে পারে যে জিইউআই ডেস্কটপ থেকে কেবল একটি লগইন-টার্মিনাল শেল খোলার ফলে / ইত্যাদি / প্রোফাইল কার্যকর হবে, যা এটি হবে না won't জিজ্ঞাসাবাবু / প্রশ্ন
পার্কার

22

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

সেট করার পছন্দের জায়গাটি PATHনির্ভর করে যে কোন ব্যবহারকারীদের জন্য আপনাকে এটি সেট করতে হবে এবং কখন এবং কীভাবে আপনি সেট করতে চান তা নির্ভর করে । আপনার সিদ্ধান্তের অংশটি হ'ল আপনি যদি কোনও ব্যবহারকারীর জন্য পরিবেশের পরিবর্তনশীল সেট চান বা প্রতি ব্যবহারকারী ভিত্তিতে। যদি আপনি নিশ্চিত না হন, তবে আমি এটি সিস্টেমওয়াইডের পরিবর্তে কেবলমাত্র একটি ব্যবহারকারীর জন্য (যেমন, আপনার অ্যাকাউন্ট) সেট করার পরামর্শ দিচ্ছি।

অ্যালেক্সপি যেমন বলেছে , PATHপরিবেশের ভেরিয়েবলের মানটি এটি সর্বাধিক নির্ধারিত হবে । অনুশীলনে, বেশিরভাগ সময় আপনি সেট করেন PATH, আপনি পুরানো মানটিকে PATHনতুন মানটিতে অন্তর্ভুক্ত করেন, যাতে আগের এন্ট্রিগুলি বজায় থাকে।

সুতরাং, অনুশীলনে, যখন PATHএকাধিক ফাইল থেকে সেট করা হয়, এটিতে সাধারণত সমস্ত ফাইলে প্রদত্ত এন্ট্রি থাকে। তবে এটি কেবল তখনই ঘটে কারণ এটিকে সেট করা সমস্ত ফাইল প্রথমটিকে বাদ দিয়ে সাধারণত PATHভেরিয়েবলটিকেই উল্লেখ করে যার ফলে তার পুরানো মানটিকে নতুনটিতে অন্তর্ভুক্ত করা হয়।

অতএব, আপনি PATHবিভিন্ন ফাইলের সেটিংস কার্যকর হওয়ার আদেশটি কার্যকরভাবে জিজ্ঞাসা করছেন ।

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

নীচের তালিকায় আপনি কিছু ডিরেক্টরি নাম দেখতে পাবেন ~/.profile। যদি আপনার সাথে অপরিচিত হন টিল্ড সম্প্রসারণ , ~/বর্তমান ব্যবহারকারীর হোম ডিরেক্টরি বোঝায়। আমি এই সংশ্লেষটি মূলত সংক্ষিপ্ততার জন্য ব্যবহার করি। এটা তোলে শেল স্ক্রিপ্ট-এ সমর্থিত নয়, তবে না PAM কনফিগারেশন ফাইলের মধ্যে।

1. সমস্ত ব্যবহারকারীর জন্য: /etc/environment

উবুন্টুতে থাকা পিএএম এর ফলে তালিকাভুক্ত পরিবেশের ভেরিয়েবলগুলি /etc/environmentসেট করা হয়, যদি সেই ফাইলটি বিদ্যমান থাকে, যা পূর্বনির্ধারিতভাবে এটি করে। সমস্ত ব্যবহারকারীদের জন্য পরিবেশের ভেরিয়েবলগুলি সর্বাধিক সেট করা থাকে।

$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

আপনার যদি কেবলমাত্র আপনার ব্যবহারকারী অ্যাকাউন্টের পরিবর্তে সমস্ত ব্যবহারকারীর অ্যাকাউন্টের জন্য পরিবেশের ভেরিয়েবল সেট করতে হয় তবে সেই ফাইলটি সংশোধন করা সম্ভবত আপনার সেরা পছন্দ। আমি প্রথমে এটি সমর্থন করার পরামর্শ দিচ্ছি recommend এই ফাইলটির ব্যাকআপ নেওয়ার একটি উপায় হ'ল:

sudo cp /etc/environment /etc/environment.orig

.origএক্সটেনশন বিশেষভাবে প্রয়োজন হয় না - আপনি ব্যাকআপ ফাইল কিছু বিভ্রান্তিকর বা ইতিমধ্যে ব্যবহৃত হচ্ছে না নামকরণ সম্পর্কে ভাল বোধ করতে পারে। (এ ছাড়া .orig, .old, .backupএবং .bakসাধারণ।)

আপনি (যদি আপনি root পরিচয়ে অন্য কোন ফাইল সম্পাদনা পারে উপায়ে কোনো একটিতে এই ফাইল সম্পাদনা করতে পারেন sudoedit /etc/enviromnment, sudo nano -w /etc/environment, gksudo gedit /etc/environmentইত্যাদি,)

/etc/environmentকোনও ভেরিয়েবলের পুরানো মান স্বয়ংক্রিয়ভাবে সহ সমর্থন করে না। তবে এটি সাধারণত অপ্রয়োজনীয়, যেহেতু আপনি বেশিরভাগ সময় সম্পাদনা করে সমস্ত ব্যবহারকারীর জন্য পরিবেশের পরিবর্তনশীল সেট করতেন /etc/environment, আপনি যেভাবেই লগইন করবেন যখন আপনি এটির প্রাথমিক মান হতে চান। ব্যবহারকারী তাদের পছন্দমতো এটি পরিবর্তন করতে পারে। সাধারণত ব্যবহারকারীদের এটি করতে সক্ষম হওয়া ভাল।

২. সমস্ত ব্যবহারকারীর জন্য: /etc/security/pam_env.conf

পিএএম /etc/security/pam_env.confপ্রতি ব্যবহারকারী ~/.pam_environmentফাইলগুলিতে ব্যবহৃত একই সিনট্যাক্সের সাহায্যে উল্লিখিত সমস্ত ব্যবহারকারীর জন্য পরিবেশ পরিবর্তনশীলগুলি পড়বে (নীচে দেখুন)।

যখন একই পরিবেশের পরিবর্তনশীল উভয়তে সেট করা থাকে /etc/environmentএবং /etc/security/pam_env.confতখন মানটি pam_env.confব্যবহৃত হয় - এমনকি যদি সেই মানটি DEFAULTপরিবর্তে নির্দিষ্ট করা হয় OVERRIDE

যাইহোক, যখন আপনি একটি লাইন রহিত environmentমধ্যে এক সঙ্গে pam_env.conf, আপনি ছাপিয়ে মান বিষয়বস্তু অন্তর্ভুক্ত করতে পারে। .pam_environmentবিশদগুলির জন্য নীচের বিভাগটি দেখুন (যেহেতু এটি একই বাক্য গঠন ব্যবহার করে)।

এটি সম্পাদনা করা সাধারণত প্রয়োজন হয় না pam_env.confএবং আপনি যদি এটি করেন তবে আপনার খুব সতর্কতা অবলম্বন করা উচিত , যেহেতু একটি ত্রুটিযুক্ত রেখা সাধারণত সমস্ত সাধারণ ব্যবহারকারীর অ্যাকাউন্টগুলিতে লগ ইন করতে বাধা দেয়! উদাহরণস্বরূপ, ডিফল্টটিতে pam_env.confলাইন থাকে:

#PATH           DEFAULT=${HOME}/bin:/usr/local/bin:/bin\
#:/usr/bin:/usr/local/bin/X11:/usr/bin/X11

এটি বেশ কয়েকটি উদাহরণের মধ্যে একটি হিসাবে উপস্থাপিত হয়। এটি চিত্রিত করার একটি বিষয় হ'ল কীভাবে একাধিক লাইনে অ্যাসাইনমেন্ট বিভক্ত করা যায় \। মনে করুন আপনি প্রথম লাইনেই অসুস্থ হয়ে পড়েছিলেন, তবে দ্বিতীয় লাইনে কিছু করতে ভুলে গেছেন:

PATH           DEFAULT=${HOME}/bin:/usr/local/bin:/bin\
#:/usr/bin:/usr/local/bin/X11:/usr/bin/X11

এটা করবেন না!

আমি দুর্ঘটনাক্রমে নিজেই এটি পরীক্ষা করেছি এবং এটি কোনও ব্যবহারকারীকে সফলভাবে লগ ইন করতে বাধা দিয়েছে। এটি ঠিক করতে, আমাকে পুনরুদ্ধার মোডে বুট করতে হয়েছিল এবং এটি আবার পরিবর্তন করতে হয়েছিল। (ভাগ্যক্রমে আমি এটি ভার্চুয়াল মেশিনে করেছি যা আমি কেবল জিনিস পরীক্ষার জন্যই ব্যবহার করি, সুতরাং এটি আমার কোনও সমস্যায় পড়েনি))

৩. একজন ব্যবহারকারীর জন্য: .pam_environmentব্যবহারকারীর হোম ডিরেক্টরিতে

একক ব্যবহারকারীর জন্য পরিবেশের পরিবর্তনশীল সেট করার অন্যতম উপায় হ'ল ব্যবহারকারীর .pam_environmentনিজের ডিরেক্টরি ডিরেক্টরিতে সম্পাদনা (বা তৈরি) করা । এই ফাইলে সেট করা মানগুলি বিশ্বব্যাপী /etc/environmentফাইলের মধ্যে সেট সেটকে ছাড়িয়ে যায় ।

.pam_environmentপ্রাথমিকভাবে যখন ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হয় তখন কোনও ফাইলের কঙ্কালের অংশ নয় যা ব্যবহারকারীর হোম ফোল্ডারে অনুলিপি করা হয়। তবে আপনি যদি নিজের হোম ডিরেক্টরিতে সেই ফাইলটি তৈরি করেন তবে আপনি পরিবেশের মত চলকগুলি সেট করতে এটি ব্যবহার করতে পারেন PATH/etc/environment(তবে পছন্দ মতো /etc/security/pam_env.conf) এর বিপরীতে , প্রতি ব্যবহারকারী .pam_environmentফাইলগুলি পরিবেশের পরিবর্তনশীলের পুরানো মানটিকে নতুন হিসাবে প্রসারণ করতে সমর্থন করে। তবে এগুলি শেল স্ক্রিপ্ট নয়, এবং এটি অর্জনের জন্য আপনাকে অবশ্যই একটি বিশেষ সিনট্যাক্স ব্যবহার করতে হবে, যা আপনার মতো কোনও ফাইলের সিনট্যাক্স থেকে কিছুটা আলাদা .profile

উদাহরণস্বরূপ, bin2আপনার বাড়ির ডিরেক্টরিতে যদি আপনার একটি ডিরেক্টরি থাকে যা আপনি শেষের দিকে যুক্ত করতে চান তবে আপনি PATHএই লাইনটি যুক্ত করে তা করতে পারেন .pam_environment:

PATH DEFAULT=${PATH}:/home/@{PAM_USER}/bin2

দেখুন উপধারা এর EnvironmentVariables , (যা থেকে উপরোক্ত উদাহরণে ঘনিষ্ঠভাবে অভিযোজিত হয়) , এবং আরও বিস্তারিত জানার জন্য।~/.pam_environmentman pam_envman pam_env.conf

যদিও এটি একবার উবুন্টু ব্যবহারকারীদের জন্য পরিবেশের পরিবর্তনগুলি যুক্ত করতে বা যুক্ত করতে পছন্দসই উপায় হিসাবে বিবেচিত হয়েছিল এবং এখনও একটি যুক্তিসঙ্গত এবং গ্রহণযোগ্য পছন্দ হিসাবে বিবেচিত হয়, সম্পাদনার সময় আপনার অবশ্যই যত্নবান হওয়া উচিত.pam_environment । সিস্টেমওয়াইডের সম্পাদনাগুলির মতো /etc/security/pam_env.conf(উপরে দেখুন), ব্যবহারকারীর .pam_environmentফাইলে একটি ত্রুটিযুক্ত লাইন লগইনকে সফল হতে বাধা দেয়। (আমি এই পরীক্ষা আছে -। এই সময় উদ্দেশ্যমূলকভাবে) কিভাবে সম্পর্কে আরও তথ্যের জন্য সুপারিশ করেছি প্রসূত দেখুন গানার Hjalmarsson এর মন্তব্য নিচে এবং এই ubuntu-develআলোচনা

এ জাতীয় ভুলটি কোনও ত্রুটিযুক্ত রেখার চেয়ে সাধারণভাবে খুব কম গুরুতর pam_env.conf, কারণ এটি কেবলমাত্র একজন ব্যবহারকারীকেই প্রভাবিত করে। তবে, লগইনগুলিকে অনুমতি দেয় এমন একটি ব্যবহারকারীর অ্যাকাউন্ট সহ ডেস্কটপ উবুন্টু সিস্টেমের ক্ষেত্রে, সম্পাদনা করার সময় এমন একটি ভুল সম্পাদনা .pam_environmentকরার মতোই খারাপ হবে pam_env.conf- আপনি যদি ইতিমধ্যে লগইন না করে থাকেন তবে আপনি সক্ষম হবেন না পুনরুদ্ধার মোডে (বা লাইভ ইউএসবি ইত্যাদি) বুট না করে এটিকে ঠিক করতে।

(আপনার যদি অন্য ব্যবহারকারীর অ্যাকাউন্ট থাকে, তবে আপনি অন্য ব্যবহারকারী হিসাবে লগ ইন করতে পারেন এবং সমস্যাটি সমাধান করতে পারেন they এমনকি যদি তারা প্রশাসক না হন sudoএবং রুট করতে না পারেন তবেও তারা চালাতে পারেন এবং আপনার (তাদের নয়) পাসওয়ার্ড প্রবেশ করার অনুরোধ জানানো যেতে পারে । অতিথি অ্যাকাউন্ট, যাইহোক, এই যেমন ব্যবহার থেকে নিষিদ্ধ করা হয় ব্যবহার করতে পারবেন না, অন্য কোনো ব্যবহারকারী পরিচয় নিতে।)su your-accountsu

৪. সমস্ত ব্যবহারকারীর জন্য: /etc/profileএবং ভিতরে ফাইল/etc/profile.d/

বোর্ন-সামঞ্জস্যপূর্ণ শেল ( bashউবুন্টুতে ডিফল্ট ব্যবহারকারী শেল সহ ) /etc/profileলগইন শেল হিসাবে আহ্বান করা হলে কমান্ডগুলি চালায় ।

উবুন্টুর /etc/profile.dসমাপ্তি এর সাথে:

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

এর ফলে /etc/profile.d/ডিরেক্টরিটির যে কোনও ফাইলের কমান্ডগুলি .shচালিত হয় যার নাম শেষ হয় ।

বেশিরভাগ ডিসপ্লে ম্যানেজার গ্রাফিকাল লগইনের জন্য কমান্ডগুলি /etc/profile(এবং এইভাবে ফাইলগুলিতে /etc/profile.d) চালিত করতে পারে। যাইহোক, সমস্তই করেন না, এবং এটি পরিবর্তে পিএএম দ্বারা সরবরাহিত সুবিধাগুলি ব্যবহারের পক্ষে (উপরে দেখুন) - এটি তাত্পর্যপূর্ণ তর্কস্বরূপ - যদি না এই সিস্টেমে কোনও গ্রাফিকাল লগইন না পাওয়া যায়, উদাহরণস্বরূপ, যদি এটি হয় কোনও জিইউআই ইনস্টল না করা একটি সার্ভার।

এটি সিস্টেমওয়াইড এনভায়রনমেন্ট ভেরিয়েবলগুলিতে সেট করা traditionalতিহ্যগত /etc/profileতবে এটি প্রায়শই সেরা পছন্দ নয়। যদি আপনি পরিবেশের পরিবর্তনশীল সেট করতে না পারেন /etc/environmentএবং আপনার অবশ্যই এটি অবশ্যই সমস্ত ব্যবহারকারীর জন্য সেট করে রাখতে পারেন তবে নিজের /etc/profile.d/সম্পাদনা করার চেয়ে একটি নতুন ফাইল তৈরি করা ভাল /etc/profile। এর একটি কারণ হ'ল, যখন উবুন্টু আপগ্রেড করা হবে তখন একটি নতুন ডিফল্ট /etc/profileফাইল থাকতে পারে । আপনি কীভাবে আপগ্রেড করবেন তার উপর নির্ভর করে সেই পুরানো ফাইলটি (আপনার পরিবর্তনগুলি সহ) রাখা হবে, সেই নির্দিষ্ট আপডেট হওয়া কনফিগারেশন ফাইলটির পূর্বেই, অথবা আপনাকে পরিস্থিতি পরিচালনা করতে অনুরোধ করা হবে।

যখন একই পরিবেশের পরিবর্তনশীল উভয় /etc/profileএবং এক বা একাধিক ফাইলের মধ্যে সেট করা থাকে /etc/profile.d, যা শেষ সঞ্চালিত হয়? এই /etc/profileসেটে থাকা কমান্ডগুলি ফাইলগুলি profile.dউত্সাহিত হওয়ার আগে বা পরে প্রদর্শিত হয়েছিল কিনা তার উপর নির্ভর করে (আমি উপরে বর্ণিত কোড দ্বারা)। কমান্ডগুলি /etc/profileতাদের প্রদর্শিত ক্রমে কার্যকর করা হয়।

/etc/profileএকটি শেল স্ক্রিপ্ট, এবং তার বাক্য গঠন হয় না PAM কনফিগারেশন উপরে আলোচনা ফাইল যে একই । এর সিনট্যাক্স প্রতি ব্যবহারকারী ~/.profileফাইলের জন্য সিনট্যাক্সের সমান (নীচে দেখুন)।

আপনার যদি এমন কোনও কোড লিখতে হয় যা কোনও নির্দিষ্ট ডিরেক্টরিতে (এবং সমস্ত ব্যবহারকারীর জন্য এটি করার জন্য) কোনও বিশেষ সংযোজন করবেন কিনা তা স্থির করে PATH, আপনি এটি ব্যবহার করতে পারবেন না /etc/environmentবা করতে পারবেন /etc/security/pam_env.confনা। এটি সম্ভবত প্রধান পরিস্থিতি যেখানে এটি ব্যবহার করা /etc/profileবা /etc/profile.d/তার পরিবর্তে ভাল।

৫. একজন ব্যবহারকারীর জন্য: .bash_profileব্যবহারকারীর হোম ডিরেক্টরিতে

যদি কোনও ব্যবহারকারীর থাকে তবে ~/.bash_profileবাশ এটি ব্যবহার করে ~/.profileবা এর পরিবর্তে ~/.bash_login(নীচে দেখুন)। .bash_profileআপনার নিজের ডিরেক্টরি ডিরেক্টরিতে সাধারণত হওয়া উচিত নয় ।

যদি আপনি না, এটা সাধারণত উৎস থেকে একটি কমান্ড ধারণ কর্তব্য ~/.profile(যেমন, . "$HOME/.profile")। অন্যথায়, প্রতি ব্যবহারকারী .profileফাইলের সামগ্রীগুলি মোটেই চালিত হয় না।

One. একজন ব্যবহারকারীর জন্য: .bash_loginব্যবহারকারীর হোম ডিরেক্টরিতে

যদি কোনও ব্যবহারকারীর থাকে তবে ~/.bash_loginবাশ এটিকে ~/.profile(নীচে দেখুন) এর পরিবর্তে ব্যবহার করে , যদি না ~/.bash_profileউপস্থিত থাকে, তবে ক্ষেত্রে neither ~ / .Bash_login থেকে উত্সাহিত না হওয়াতে অন্যরা দু'জনেরই ব্যবহৃত হবে না।

পাশাপাশি .bash_profile, .bash_loginআপনার নিজের ডিরেক্টরি ডিরেক্টরিতে কোনও ফাইল থাকা উচিত নয় ।

One. একজন ব্যবহারকারীর জন্য: .profileব্যবহারকারীর হোম ডিরেক্টরিতে।

যখন বোর্ন-স্টাইলের শেলটি লগইন শেল হিসাবে চালিত হয় তখন এটি কমান্ডগুলি চালায় /etc/profile(এতে সাধারণত কমান্ডগুলি অন্তর্ভুক্ত থাকে যা ফাইলগুলিতে কমান্ডগুলি /etc/profile.d/চালিত করে - উপরে দেখুন)। এর পরে, এটি .profileব্যবহারকারীর হোম ডিরেক্টরিতে কমান্ডগুলি চালায় । এই ফাইলটি প্রতিটি ব্যবহারকারীর জন্য পৃথক। (ব্যাশ আসলে চালায় .bash_profileঅথবা .bash_loginপরিবর্তে থাকলে সেগুলি -। কিন্তু, একটি উবুন্টু সিস্টেমে ব্যবহারকারীদের জন্য, ঐ ফাইল খুব কমই বা অস্তিত্ব না করা উচিত বিবরণের জন্য, উপরে দেখুন এবং 6.2 ব্যাশ প্রারম্ভ ফাইল মধ্যে ব্যাশ ম্যানুয়াল ।)

~/.profileব্যবহারকারীদের লগ-ইন করার সময় চালিত কমান্ডগুলি রাখার প্রধান জায়গা এটি। এটি আপনার সেট করার জন্য এটি প্রচলিত জায়গা PATH, তবে যেহেতু উবুন্টুর পাম_েনভ মডিউল এবং সমর্থন রয়েছে তাই আপনার এটি ~/.pam_environmentব্যবহার করা উচিত।

হিসাবে /etc/profile, সমস্ত প্রদর্শন পরিচালকরা এই ফাইলটি গ্রাফিকাল লগইনগুলির জন্য চালান না, যদিও বেশিরভাগই করেন। এই পছন্দ একটি কারণ ~/.pam_environmentএনভায়রনমেন্ট ভেরিয়েবল সেট করার জন্য (এক পছন্দ করেন যতটা /etc/environmentথেকে /etc/profile)।

আপনি বিভিন্ন পরিবেশের প্রসারিত করতে পারেন, যার PATHনিজেই, যখন আপনি সেট PATHমধ্যে .pam_environment(উপরে দেখুন)। যাইহোক, যদি আপনাকে PATHআরও পরিশীলিত উপায়ে সেট করার প্রয়োজন হয় তবে আপনার .profileপরিবর্তে আপনাকে এটি ব্যবহার করতে হতে পারে । বিশেষত, আপনি যদি অনুসন্ধান করতে চান যে প্রতিবার কোনও ব্যবহারকারী লগইন করে কোনও ডিরেক্টরি উপস্থিত থাকে এবং কেবল এটির মধ্যে PATHএটি যুক্ত হয় তবে আপনি .pam_environmentসেই ডিরেক্টরিটি আপনার ডিরেক্টরিতে যুক্ত করতে নিজের ফাইলটি ব্যবহার করতে সক্ষম হবেন না PATH

উদাহরণস্বরূপ, .profileউবুন্টুতে প্রতি ব্যবহারকারী ডিফল্ট ফাইলটি এর সাথে শেষ হত :

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

দেখুন গানার Hjalmarsson এর মন্তব্য উপর বাইট কমান্ডার এর উত্তর জানার জন্য।

binআপনার বাড়ির ডিরেক্টরিটির একটি উপ-ডিরেক্টরি আছে কিনা তা এটি পরীক্ষা করে । যদি তা হয় তবে এটি আপনার শুরুর সাথে সেই উপ-ডিরেক্টরিকে যুক্ত করে PATH

এই তালিকাটি কিছু সম্ভাবনা বাদ দেয়।

ব্যবহারকারীরা লগ ইন করার সময় অন্যান্য বিভিন্ন উপায়ে পরিবেশ পরিবর্তনশীল সেট করা থাকে যা লগইনের ধরণের উপর বেশি নির্ভর করে। উদাহরণস্বরূপ, আপনার মাঝে মাঝে পরিবেশের ভেরিয়েবলগুলি থাকতে পারে যা কেবল গ্রাফিকাল লগইনগুলির জন্য বা এসএসএইচ-ভিত্তিক দূরবর্তী লগইনগুলির জন্য সেট হয়ে যায়। উপরের তালিকাতে এ জাতীয় মামলা অন্তর্ভুক্ত নয়।

আমি কয়েকটি ফাইল রেখে দিয়েছি যেখানে লোকেরা মাঝে মাঝে পরিবেশের ভেরিয়েবলগুলি সংজ্ঞায়িত করে, যেমন ~/.bashrcএবং /etc/bash.bashrcকারণ সেগুলি সাধারণত সেট করার জন্য প্রস্তাবিত জায়গা নয় PATHএবং বিরল এটি আপনার পক্ষে এই উদ্দেশ্যে ব্যবহার করা উচিত rare আপনি যদি এই ফাইলগুলিতে ডিরেক্টরিগুলি যুক্ত করতে ব্যবহার করেন PATHতবে সেগুলি কখনও কখনও বহুবার যুক্ত হয়ে যায় এবং যখন আপনি পরীক্ষা করেন তখন খুব বিভ্রান্ত হয় $PATH। (চরম ক্ষেত্রে এটি জিনিসগুলিকে ধীর করতে পারে তবে সাধারণত সবকিছু পরিষ্কার এবং বোধগম্য রাখার বিষয়))

যেহেতু bashব্যবহারকারীদের জন্য উবুন্টুর ডিফল্ট লগইন শেল, এবং বেশিরভাগ ব্যবহারকারী এটি বা অন্য কোনও পসিক্স-সামঞ্জস্যপূর্ণ শেল ব্যবহার করেন, তাই পরিবেশ-পরিবর্তনশীলগুলি কীভাবে অন্যান্য, বোর্ন-স্টাইনের শেলগুলিতে সেট করা হয় সে সম্পর্কে আমি তথ্য বাদ দিয়েছি tcsh


1
[2 টির মধ্যে # 1 মন্তব্য] এই বিস্তৃত বিবরণের জন্য ধন্যবাদ! (আমি একটি ছোটখাটো সম্পাদনা করেছি)) তবে, প্রস্তাবিত উপায় (গুলি) সম্পর্কে আমার সন্দেহ আছে। কয়েক বছর আগে EnvironmentVariables উল্লিখিত /etc/environment/ ~/.pam_environmentযেমন বাঞ্ছনীয় ফাইল। বিকাশকারীদের সাথে পরামর্শ করার পরে আমি এটিকে পিএএম এবং / / এর মধ্যে নিরপেক্ষ হিসাবে পরিবর্তিত করেছি এবং এখনও আমি সেভাবে এটি দেখার ঝোঁক। /etc/profile.d/*.sh~/.profile
গুনার হেজালমারসন

1
[2 টির # 2 মন্তব্য] আপনি পিএএম পক্ষে পক্ষে বেশ কয়েকটি যুক্তি উল্লেখ করেছেন। /etc/profile.d/*.sh/ ~/.profileএর পক্ষে গুরুত্বপূর্ণ যুক্তিগুলি হ'ল বাক্য গঠনটি সহজ এবং লাইটডিএম / জিডিএম ত্রুটির ক্ষেত্রে ক্ষমা করে দিচ্ছে (সিনট্যাক্স ত্রুটিগুলি আপনাকে লগ ইন করতে বাধা দেয় না, তবে কেবল সতর্ক বার্তায় ফলাফল দেয়)।
গুনার হেজালমারসন

আপনি যখন বলেন pam_env.so, আপনি কি বলতে চাচ্ছেন pam_env.conf?
জোহান বুলি

@ জোহানবুলé হ্যাঁ, আমার অর্থ ছিল pam_env.conf। ধন্যবাদ! আমি এটিকে ঠিক করার জন্য সম্পাদনা করেছি।
এলিয়াহ কাগন

3

/ ইত্যাদি / এনভায়রনমেন্ট ফাইল কোনও স্ক্রিপ্ট ফাইল নয় আপনি সেখানে রফতানি ব্যবহার করতে পারবেন না এবং এটি simp হোম টাইপটির পরিবর্তনশীল প্রসারণ সমর্থন করে না, কেবল সহজলভ্য = মান জোড়া। সুতরাং এই ফাইলটি ব্যবহার করার জন্য, আপনাকে কেবলমাত্র বিদ্যমান সংজ্ঞাটিতে আপনার পথটি সংযোজন করতে হবে, বিশেষত সিস্টেম-ব্যাপী পরিবেশের পরিবর্তনশীল সেটিংসের জন্য বোঝানো হয়েছে। প্রতি লাইনে এক বিশেষত, এই ফাইলটি সিস্টেম-বিস্তৃত লোকেল এবং পথের সেটিংস সঞ্চয় করে।

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


1

পরিবেশগত ভেরিয়েবল সেট করার জন্য পছন্দের জায়গাটি বেশ কয়েকটি বিষয়ের উপর নির্ভর করে:

  1. আপনি কেবল কম্পিউটারটি ব্যবহার করছেন:
    • এই ক্ষেত্রে এটি নির্ধারণের সেরা জায়গাটি /etc/environmentহ'ল যেহেতু _অনুষ্ঠানিক অ্যাক্সেসের কোনও বিপদ নেই।
  2. সিস্টেমটি যদি অনেকে ব্যবহার করেন
    • যদি ভেরিয়েবলগুলি সকলের দ্বারা অ্যাক্সেস করা উচিত তবে অবস্থানটি হবে /etc/environmentতবে
    • যদি পৃথক ব্যবহারকারীদের তাদের অ্যাক্সেস চয়ন করা উচিত হয়~/.profile তবে প্রতিটি সিস্টেমের প্রতিটি ব্যবহারকারীর হোম ডিরেক্টরিতে অবস্থিত হওয়ায় প্রত্যেকের সিস্টেমের প্রতিটি ব্যবহারকারীর সাথে সম্পর্কিত হওয়া উচিত

সিস্টেমটি পড়ার /etc/environmentআগে পড়বে ~/.profile। কোনও মনোনিবেশ ঘটে না এবং অ্যালেক্স পি এর মতোই বলেছিলেন যে পথে শেষ অ্যাসাইনমেন্টটি বিরাজ করছে।

এই জাতীয় অবস্থানগুলির সাথে কীভাবে খেলবে ~/.profileএবং কীভাবে /etc/environmentখেলবে তা এখানে এবং এখানে কীভাবে নির্ধারণ করা হয় সেগুলি সম্পর্কে আরও বিশদ দেখার জন্য , কারণ এই কারণগুলি আপনি কীভাবে এই অবস্থানগুলি ব্যবহার করবেন তা প্রভাবিত করবে।

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