রুট কেন উত্স হয় না? Bash_profile?


10

প্রতিবার আমি রুট হিসাবে ব্যবহার করে লগইন করার চেষ্টা করব su(না su -), এটি .bash_profileব্যবহারকারীর হোম ডিরেক্টরিতে উত্স হয় না ।

মূলত, আমার /var/rootডিরেক্টরির নেই .bash_profileতাই আমি একটি কপি করা .bash_profileমধ্যে /var/rootপরীক্ষা su -

এটি স্বয়ংক্রিয়ভাবে উত্স হয় না .bash_profile(হয় var/root), হয়।

যাইহোক, আমি .bash_profileযখন ব্যবহার করি তখন স্বয়ংক্রিয়ভাবে রুট অ্যাকাউন্টে উত্সযুক্ত ব্যবহারকারী 1 তৈরি করতে চাই su

আমার কি করা উচিৎ?

(এটি আগে কাজ করেছিল! একদিন, এটি কেবল উত্স নয়! সম্ভবত বাশে কিছু সেটিংস পরিবর্তিত হয়েছে? source .bash_profileলগইন করার পরে প্রবেশ করার পরে এটি কাজ করে ))

আমি ম্যাক এবং ওএস এক্স ইয়োসেমাইট ব্যবহার করছি।

উত্তর:


11

rootওএস এক্স-এর জন্য ডিফল্ট শেল /bin/sh। এটিরও shএকটি সংস্করণ bash, তবে বাশ নামের সাথে যুক্ত হলেsh :

shPOSIX মান হিসাবে মেনে চলার সময় যতটা সম্ভব নিবিড় historicalতিহাসিক সংস্করণগুলির প্রারম্ভিক আচরণের নকল করার চেষ্টা করে ।

যখন একটি ইন্টারেক্টিভ লগ-ইন শেল হিসাবে প্রার্থনা, অথবা সঙ্গে একটি নন-ইন্টারেক্টিভ শেল হিসাবে --loginবিকল্প, এটা প্রথম করার জন্য প্রচেষ্টার সংখ্যা পড়া এবং থেকে কমান্ডগুলো /etc/profileএবং ~/.profile, যাতে। ... sh হিসাবে চিহ্নিত একটি শেল অন্য কোনও স্টার্টআপ ফাইল থেকে কমান্ডগুলি পড়ার এবং সম্পাদন করার চেষ্টা করে না

অর্থাৎ এটা পড়তে না .bash_profileএ সব কিনা এটি একটি লগ-ইন শেল বা না হিসাবে চালানো হয়েছিল নির্বিশেষে । আপনি .profileপরিবর্তে ব্যবহার করতে পারেন , বা এমনকি একে অপরের সাথে সিমিলিংক করতে পারেন। আপনার সাথে একটি লগ-ইন শেল আরম্ভ তাহলে su -l, .profileসূচনার সময় লোড হয়, কিন্তু .bash_profileহতে হবে।


আপনি রুটের শেল পরিবর্তন করতেও ব্যবহারdscl করতে পারেন ( ওএস এক্স-এ শেল নির্ধারণের জন্য এটি ব্যবহার করা /etc/passwdহয় না )। এর সাহায্যে আপনি রুটের বর্তমান শেলটি পরীক্ষা করতে পারেন dscl . -read /Users/root UserShell; ডকুমেন্টেশনের সাথে পরামর্শ করুন এবং এটিকে অন্য কোনও কিছুতে পরিবর্তন করার আগে সাবধানতার সাথে চিন্তা করুন।

আর একটি উপায় হ'ল আপনার suঅনুরোধটি bashঅবিলম্বে কার্যকর করতে বাধ্য করার জন্য পরিবর্তন করা।

আপনি যা বলেছেন তা প্রদত্ত, আমি সম্ভবত সিমলিংকের প্রস্তাব দিই, তবে আপনি বাশের পসিক্স মোডে যে পরিবর্তনগুলি করেছেন তা সন্ধান করতে এবং আপনি সেগুলি রাখতে চান কিনা তা স্থির করতে পারেন।


5

কারণ এটিকে "লগইন শেল" হিসাবে বিবেচনা করা হয় না (যা সরাসরি login, বা থেকে আহবান করা হয় sshd) তবে সাধারণ "ইন্টারেক্টিভ শেল"। উদাহরণস্বরূপ এখানে দেখুন: https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html

সুতরাং বাধ্যতামূলকভাবে suলগইন বিকল্প ব্যবহার করে বিকল্প সহ -l:

su -l

অথবা আপনার পরিবেশকে .bashrcফাইলের মধ্যে রাখুন।


5

আপনি লগইন শেলটি না নিলে যেহেতু মূল ব্যবহারকারী .bash_profile এর পরিবর্তে .bashrc ফাইলটি কার্যকর করার চেষ্টা করবে।

বাশ ম্যানুয়াল থেকে man bash:

   ~/.bash_profile
          The personal initialization file, executed for login shells
   ~/.bashrc
          The individual per-interactive-shell startup file

~রুট ব্যবহারকারীর হোম ডিরেক্টরিতে যেখানে .bashrc ফাইলটি থাকা দরকার তা নোট করুন ।

আপনার প্রশ্নের উত্তর দেওয়ার জন্য, আপনি যদি ব্যবহারকারী 1 এর .brcrc ফাইলটি ব্যবহার করতে চান তবে আমি আপনাকে পরামর্শ দিতে চাই যে উত্সটি .bashrc এর মধ্যে ব্যবহারকারী 1 থেকে মূল ব্যবহারকারীর মধ্যে একটি (প্রতীকী) লিঙ্ক তৈরি করুন।

আপনি . /homedirectory/of/user1/.bash_profileরুট ব্যবহারকারীর .bashrc ফাইলটিতে লাইন যুক্ত করে ব্যবহারকারীর উত্স 1 .বাশার্ক বা এমনকি .Bash_profile উত্স বিবেচনা করতে পারেন ।

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