সুডু সু চালানোর জন্য কি কোনও ভাল কারণ আছে?


78

মেশিনগুলিতে রুট শেল চালু করতে যেখানে রুট অ্যাকাউন্টটি অক্ষম করা আছে, আপনি এর মধ্যে একটি চালাতে পারেন:

  • sudo -i: একটি ইন্টারেক্টিভ লগইন শেল চালান (পড়ুন /root/.bashrcএবং /root/.profile)
  • sudo -s: একটি অ-লগইন ইন্টারেক্টিভ শেল চালান (পড়ুন /root/.bashrc)

উবুন্টু বিশ্বে, আমি প্রায়শই দেখতে sudo suপাই একটি মূল শেল পাওয়ার উপায় হিসাবে। কেন একটি পৃথক দুটি কমান্ড চালাতে হবে? যতদুর আমি বলতে পারেন, sudo -iসমতূল্য sudo su -এবং sudo -sহিসাবে একই sudo su

কেবলমাত্র পার্থক্যগুলি ( sudo -iবাম এবং sudo su -ডানদিকে তুলনা করা ) বলে মনে হচ্ছে :

'সুডো-আই' এবং 'সুডো সু -' এর তুলনায় মেল্ডের স্ক্রিনশট

এবং তুলনা sudo -s(বাম) এবং sudo su(ডান):

'সুডো-এস' এবং 'সুডো সু' তুলনা মেল্ডের স্ক্রিনশট

প্রধান পার্থক্যগুলি ( SUDO_fooভেরিয়েবলগুলি উপেক্ষা করে LS_COLORS) সংস্করণগুলিতে XDG_fooসিস্টেম ভেরিয়েবল বলে মনে হচ্ছে sudo su

এমন কোনও মামলা রয়েছে যেখানে পার্থক্যটি বরং অযোগ্য ব্যবহার করে পরোয়ানা দেয় sudo su? আমি কি নিরাপদে লোককে বলতে পারি (যেমন আমার প্রায়শই আছে) দৌড়ানোর কোনও মানে হয় না sudo suবা আমি কিছু হারিয়ে যাচ্ছি?


8
আমি এই জাতীয় অভিনব সিস্টেমগুলি কখনই বুঝতে পারি নি ubuntuযা ব্যবহারকারীদের মান থেকে বাধা দেয় su -। তারা সমস্যা তৈরি করেছে এবং এখন এটি কীভাবে সমাধান করা যায় তা নিয়ে অফুরন্ত আলোচনা হয়।
জিম্মিজ

16
@ jimmij আপনার কি রুট পাসওয়ার্ড জানার দরকার নেই su -? আপনি কি মনে করেন না যে একাধিক ব্যবহারকারীর পরিবেশে সুরক্ষা গর্ত রয়েছে, যেখানে একাধিক ব্যক্তির রুট অ্যাক্সেস থাকা দরকার?
ইরাথিয়েল

4
@ ক্রিস্টোফার সমস্যাটি এমন কোনও ব্যবহারকারী নয় যার কাছে সুডো সুবিধা বা সিস্টেম হ্যাক করার জন্য মূল পাসওয়ার্ড রয়েছে। সমস্যাটি পাসওয়ার্ড সুরক্ষার বিষয়ে। আপনি যখন রুট পাসওয়ার্ড পরিবর্তন করেন, আপনার সমস্ত ব্যবহারকারীদের এটির প্রয়োজন জানা উচিত, যা কঠিন হতে পারে। সুডোর সাথে, আপনার এই অসুবিধা নেই।
হিউজেন্স

4
ডিফ সরঞ্জাম কী?
জোশ দ্য গীক

5
@ জিম্মিজ কীভাবে উবুন্টু ব্যবহার প্রতিরোধ করবে su -? হ্যাঁ, একটিতে একটি রুট পাসওয়ার্ড সেট করতে হবে, তবে এটি তুচ্ছ।
23:

উত্তর:


62

যেমন আপনি আপনার প্রশ্নে বলেছেন, মূল পার্থক্য হ'ল পরিবেশ।

sudo su - বনাম sudo -i

sudo su -এটির ক্ষেত্রে লগইন শেল, সুতরাং /etc/profile, .profileএবং .bashrcকার্যকর করা হয় এবং আপনি রুটের পরিবেশের সাথে মূলের হোম ডিরেক্টরিতে নিজেকে খুঁজে পাবেন।

sudo -iপ্রায় একই (প্রাথমিক লগইন সিমুলেট) বিকল্প শেল লগ-ইন শেল হিসাবে লক্ষ্য ব্যবহারকারীর পাসওয়ার্ড ডাটাবেসের এন্ট্রি দ্বারা নির্দিষ্ট রান। এর অর্থ হ'ল লগইন-নির্দিষ্ট সংস্থানীয় ফাইলগুলি , বা শেল দ্বারা পড়া এবং সম্পাদন করা হবে।sudo su --i.profile.bashrc.login

sudo su বনাম sudo -s

sudo susudoকমান্ড সহ কল su। বাশকে ইন্টারেক্টিভ নন-লগইন শেল হিসাবে ডাকা হয়। সুতরাং bashশুধুমাত্র কার্যকর .bashrc। আপনি দেখতে পাচ্ছেন যে রুটে স্যুইচ করার পরে আপনি এখনও একই ডিরেক্টরিতে রয়েছেন:

user@host:~$ sudo su
root@host:/home/user#

sudo -s$SHELLভেরিয়েবলটি পড়ে এবং সামগ্রীটি কার্যকর করে। যদি এটি $SHELLথাকে তবে /bin/bashএটির sudo /bin/bashঅর্থ /bin/bashহ'ল লগ-ইন শেল হিসাবে শুরু হয়েছে, সুতরাং সমস্ত ডট-ফাইলগুলি কার্যকর করা হয় না, তবে bashনিজেই পড়ে। bashrcকলিং ব্যবহারকারীর। আপনার পরিবেশ একই থাকে। আপনার বাড়িটি মূলের বাড়ি হবে না। সুতরাং আপনি মূল, কিন্তু কলিং ব্যবহারকারীর পরিবেশে।

উপসংহার

-iপতাকা যোগ করা হয়েছিল sudoমধ্যে 2004 , একটি অনুরূপ ফাংশন প্রদান sudo su -, তাই sudo su -জন্য টেম্পলেট ছিল sudo -iও এর মত কাজ করতে বোঝানো। আমি মনে করি আপনি যেটি ব্যবহার করবেন তা বাস্তবে গুরুত্বপূর্ণ নয়, যদি না পরিবেশটি গুরুত্বপূর্ণ না হয়।

সংযোজন

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

তাই মানে গালি দেওয়া sudoহয়েছিল। sudoরুট সুবিধাগুলি ব্যবহারকে হ্রাস করতে ব্যবহারকারীকে উত্সাহিত করার উদ্দেশ্য ছিল।

আমাদের এখন যা আছে, তা sudoআরও বেশি জনপ্রিয় হয়ে ওঠে। এটি প্রায় প্রতিটি সুপরিচিত লিনাক্স বিতরণে একীভূত হয়। অন্য ব্যবহারকারীর অ্যাকাউন্টে স্যুইচ করার মূল সরঞ্জামটি হ'ল su। একটি পুরানো স্কুল * নিক্স অভিজ্ঞ জন্য যেমন জিনিস sudoঅযথা মনে হতে পারে। এটি জটিলতা যুক্ত করে এবং মাইক্রোসফ্টস ওস-পরিবার থেকে আমরা যে প্রক্রিয়াগুলি জানি তার সাথে আরও বেশি আচরণ করে এবং এইভাবে * নিক্স সিস্টেমগুলির সরলতার দর্শনের বিপরীতে।

আমি সত্যিই একজন অভিজ্ঞ নই, তবে আমার মতে sudoসর্বদা আমার পক্ষে একটি কাঁটা ছিল, যেহেতু সময় শুরু হয়েছিল এবং আমি sudoযদি সম্ভব হত তবে আমি সর্বদা এর ব্যবহারকে ঘিরে কাজ করতাম worked আমি ব্যবহার করতে সবচেয়ে অনিচ্ছুক sudo। আমার সমস্ত সিস্টেমে, রুট অ্যাকাউন্ট সক্ষম করা আছে। তবে বিষয়গুলি পরিবর্তিত হয়, সম্ভবত এমন সময় আসবে যখন suঅবনতি হবে এবং পুরোপুরি sudoপ্রতিস্থাপন করা suহবে।

অতএব আমি মনে করি, কোনও পুরানো সরঞ্জামের উপর নির্ভর না করে sudoঅভ্যন্তরীণ প্রক্রিয়া ( -s, -i) ব্যবহার করা সবচেয়ে ভাল su


4
আহ, সুতরাং 2004 এর আগে আসলে চালানোর কারণ ছিল sudo su? সেই সময়ে আমি সুডো এবং সক্রিয় রুট অ্যাকাউন্টগুলি ছাড়া ডিস্ট্রোস ব্যবহার করছিলাম যাতে আমি জানি না। এটি উবুন্টু বিশ্বে sudo su meme এর প্রসার ব্যাখ্যা করতে পারে।
টেরডন

8
আমি এর আগে sudo -iবা এর sudo -sআগে কখনই জানতাম না - ১৯৯১ সাল থেকে আমি বিভিন্ন ধরণের ইউনিক্স চালাচ্ছি এবং আমার sudo su -কাছে এই মুহুর্তে কেবল একটি নিয়মিত অভ্যাস।
ফ্লুফি

2
তখনও কি sudo -sএকই রকম sudo $SHELL?
স্যামুয়েল এডউইন ওয়ার্ড

3
(@ চাওসের সাথে সম্মত) ব্যবহারের কারণগুলি হ'ল sudo su -1) এটি কাজ করে এবং এটি ঠিক কী করে তা আপনি জানেন এবং 2) আপনাকে অন্য কোনও বিকল্প মনে করতে হবে না sudo(যখন আপনি ইতিমধ্যে জানেন su -) এবং 3) আপনি ডোন না ' sudoএই মুহুর্তে আপনি কোন সংস্করণটির সাথে কাজ করছেন তা মনে রাখতে হবে না। আপনার যদি ইতিমধ্যে ভাল কাজ করে তবে কেন ট্রিভিয়ার আরও একটি টুকরো মনে রাখবেন? su -iলগ এন্ট্রি এড়ানোর চেয়ে আরও ভাল কিছু আছে কি ? আমি এটা sudo su -নিয়ে চিন্তা করতে যথেষ্ট ব্যবহার করি না ।
jrw32982

3
আমি সবেমাত্র আপডেটটি দেখেছি, খুব সুন্দর! রেকর্ডের জন্য, আমাকে রাষ্ট্র যাতে আমারও কোনো সহ সিস্টেমের উপর আমার * স্নো দাঁত কাটা যাক sudoও খুব ব্যবহার করছি su। এটি আমার দু'জনের সমন্বয়।
টেরডন

16

আপনার প্রশ্নের সরাসরি উত্তর দিতে: না, এটি করার কোনও ভাল কারণ নেই। এছাড়াও, sudo su দুটি লগ এন্ট্রি তৈরি করে যখন একটি পর্যাপ্ত হবে।

আমি অনেক লোককে এটি করতে দেখেছি, এবং যখন আমি জিজ্ঞাসা করি তারা কেবল চালাচ্ছে না কেন sudo -s, উত্তরটি কেবলমাত্র তারা জানায় যে তারা -sপতাকাটি সুডো সম্পর্কে জানে না এবং সাধারণত আমি এটি চিহ্নিত করার পরে তারা স্যুইচ করে।

তবে আপনার তালিকায় sudo -sএবং sudo -i, আমি আরও একটি বিকল্প যুক্ত করতে চাই sudo -sE, যা এটির জন্য প্রতিস্থাপনের মতো su -msudo -sEহোম ডিরেক্টরি সহ আপনার পরিবেশ সংরক্ষণ করে। আপনার বাড়ির ডিরেক্টরিটি নিরাপত্তাহীন হলে (এনএফএসে) এর ঝুঁকি রয়েছে। তবে এমন পরিবেশে যেখানে অনেক লোক রুট ব্যবহার করে, এটি আপনাকে রুট .bashrcফাইলের বিষয়বস্তুগুলির সাথে একমত হতে বাঁচায় । আমার .bashrcশিকড়ের জন্য অনেক বিশেষীকরণ রয়েছে, তাই আমি রুটের মতো ঠিক একই পরিবেশটি পাই না, তবে কমপক্ষে আমি আমার পছন্দ মতো পরিবেশটি পাই।


4
যদি এটি আপনার পরিবেশ সংরক্ষণ করে, সহ এর $HOMEঅর্থ হ'ল হোম ফোল্ডারের নীচে তৈরি করা সমস্ত নতুন ফাইলগুলি আপনার দ্বারা নয়, মূলের মালিকানাধীন। অনুমতি ত্রুটিগুলি নির্ণয়ের জন্য আমার এই কারণটি অনেক কঠিন হয়েছিল।
এরিস

sudo -sEএবং তারপর echo $HOMEদেয় /rootসেন্টওএস 7, ব্যাশ 4.2 উপর। -sEআপনার ডিরেক্টরি অনুযায়ী হোম ডিরেক্টরি সংরক্ষণ করার জন্য উপস্থিত হয় না।
জেরেমিসপ্রোফাইল 21 ই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.