"সুডো-আই" এবং "সুডো বাশ-এল" এর মধ্যে পার্থক্য কী?


13

রুট হিসাবে কাজ করা একাধিক সিসাদমিন সম্পর্কিত একটি সাম্প্রতিক প্রশ্ন রয়েছে এবং sudo bash -lতা রেফারেন্স করা হয়েছিল।

আমি গুগল এবং এসইতে এটি অনুসন্ধান করেছি, কিন্তু আমি sudo bash -lএবং এর মধ্যে পার্থক্য বুঝতে পারি না sudo -i

ব্যাশ এবং sudo bash -lসুডোর জন্য ম্যান পৃষ্ঠাগুলি থেকে মনে হয় যে মূল ব্যবহারকারীর ~ / .bash_profile, ~ / .Bash_login, এবং ~ /। প্রোফাইল, এবং ~ / .Bash_logout চালিত হয় তবে নিজেকে পরীক্ষা করে দেখে মনে হয় এটি সাধারণ ব্যবহারকারীর .bashrc চালায় এবং মূলটি নয়। ম্যান পৃষ্ঠাগুলিতে কোন ব্যবহারকারী ~ এক্সপ্রেশনটি উল্লেখ করছে তা আমি ভুল বুঝেছি। পার্থক্যের ব্যাখ্যা এবং ব্যবহারের পরিস্থিতি প্রশংসা করা হবে।

উত্তর:


10

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


হাই @ জনশেন 64৪, আপনি কি বিভিন্ন ব্যবহারের পরিস্থিতি পরিষ্কার করতে সক্ষম হবেন?
Rqomey

2
যে শেলটি তারা ব্যবহার করছে তা পছন্দ করে, তাই আপনি যদি ব্যাশ ব্যবহার নিশ্চিত করতে চান তবে দ্বিতীয় ফর্মটি ব্যবহার করা উচিত। দ্বিতীয় ফর্মটিও একটি আসল লগইনকে সিমুলেট করে (এটি -l মানে। অবশ্যই, আপনি কেবল বাশ টাইপ করতে পারেন যখন আপনি দেখতে পাচ্ছেন যে ব্যবহারকারী (রুটের ডিফল্ট) এর sudo -i ব্যবহারের ক্ষেত্রে ইন্টারেক্টিভ শেল হিসাবে ব্যাশ নেই। অন্যথায় পার্থক্য খুব সামান্য। অন্যান্য উত্তর হিসাবে দেখা যায়, কিছু ছোট পরিবেশ পার্থক্য আছে। বেশিরভাগ ক্ষেত্রে পার্থক্যটি বিবেচনা করে না এবং প্রথমটি সংক্ষিপ্ত হয়, কারণ বেশিরভাগ সাধারণ ডিগ্রো ব্যাশ ব্যবহার করে। আমি খুব কমই দ্বিতীয় ফর্মটি ব্যবহার করি।
johnshen64

4

@ জোহেনশিয়ান answer৪ জবাব যোগ করার জন্য আমি লক্ষ্য করেছি যে অনুরোধটি এনভেরি ভেরিয়েবলটিকে এবং তার মতো ব্যবহারকারীর বাড়িতে sudo -iআপডেট করে ;$USERNAMErootcd ~

$ sudo -i
[root@workstation001 ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@workstation001 ~]# echo $USERNAME
root
[root@workstation001 userXXX]# echo $PWD
/root

তবে এর জন্য sudo bash -l $USERNAMEনিরবিচ্ছিন্ন এবং কার্যকারী ডিরেক্টরিটি পরিবর্তন করা হয়নি। (যদিও এটি অন্যান্য ব্যবহারকারীর মধ্যে সামঞ্জস্যপূর্ণ নয়, মন্তব্য দেখুন ...)

$ sudo bash -l
[root@workstation001 userXXX]# id
uid=0(root) gid=0(root) groups=0(root)
[root@workstation001 userXXX]# echo $USERNAME
userXXX
[root@workstation001 userXXX]# echo $PWD
/home/userXXX

সুতরাং সম্ভবত আপনি একই সেটটি ঠিক মতো পাচ্ছেন ~/.bashrcনা বা একই ক্রমেও পাচ্ছেন না ইত্যাদি pres

(আমার বাক্সটি আমার .bashrcটিঙ্কিংগুলি দ্বারা কিছুটা গোলমাল হতে পারে , তাই ওয়াইএমএমভি)


ধন্যবাদ @ টম এইচ: echo $USERNAMEআমার জন্য উভয় সময় শিকড় প্রদান করে (আমার উবুন্টু ডেস্কটপ এবং সেন্টোস 5.2 এ)। পিডব্লিউডি আপনি যেমন রিপোর্ট করেছেন তেমন।
Rqomey
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.