ডিফল্ট ব্যতীত অন্য কিছুতে রুটের শেল সেট করা কি খারাপ অভ্যাস?


16

একবার আমার এক বন্ধু (যিনি অভিজ্ঞ ইউনিক্স / লিনাক্স ব্যবহারকারী) আমাকে বলেছিলেন যে শের শেল (যেমন বাশ বা জেডএস) ব্যতীত অন্য কিছুতে শটের শেল স্থাপন করা সমস্যা তৈরি করতে পারে কারণ কোনও স্ক্রিপ্ট ধরে নিতে পারে যে শেলটি শ এবং এটি অদ্ভুত কিছু করে ।

তবে আমি মনে করি উবুন্টুর ডিফল্ট রুট শেলটি বাশকে সেট করা আছে এবং জেন্টুও ব্যাশ ব্যবহার করে। কেউ কি পৌরাণিক কাহিনীকে আবদ্ধ করতে পারে?

উত্তর:


12

হ্যাঁ. বুট করার সময় সিস্টেমটি ব্যর্থ হলে আপনি রুট শেলটিতে লগইন করতে পারেন। আপনার আলাদা / usr থাকলে কয়েকটি শেল সফলভাবে শুরু করতে ব্যর্থ হতে পারে।

আমি toorডিফল্ট শেল সহ বাম রুট থাকা অবস্থায় অ-মানক শেল দিয়ে অ্যাকাউন্ট (uid 0, gid 0) তৈরি করার পরামর্শ দেব ।


এটি আমার সাথে হয়েছিল যখন আমি এফবিএসডি 7.2 থেকে 8.0 এ আপগ্রেড করেছি এবং আমি পুনর্নির্মাণ করতে ভুলে গেছি bash। আমি ফিক্স করার জন্য একক ব্যবহারকারী মোডে বুট করেছি, তবে এটি কেবলমাত্র কাজ করেছে কারণ /bin/shএখনও FBSDএর কাঁটাচামড়ার সাথে যুক্ত ছিল bourneএবং না bash
gvkv

শুধু জিনিসগুলি পরিষ্কার করার জন্য, যদি আমি ইনস্টল করে বলি zshএবং কোনওভাবে /usrক্ষতিগ্রস্থ হয়েছে তবে আমার সমস্যা হবে? কিন্তু আমার সিস্টেমটি নিজেই /bin/shইঙ্গিত করেছে /bin/bashএবং bashকেন shপ্রভাবিত হবে না ?
ফোনেহেহে

1
সিস্টেমটি বুট হবে এমন মূল "গ্যারান্টি" এর জন্য ডিফল্ট - আপগ্রেড গাইডটি অন্তত রুটে লগ ইন করতে সক্ষম হওয়া সম্পর্কে যত্ন নেবে। তবে এটি অন্য কোনও কিছুর ক্ষেত্রে নাও হতে পারে। সমাধানটি হ'ল দৈনন্দিন ব্যবহারের জন্য অ-ডিফল্ট শেলটি দিয়ে টুর দ্বারা মূল অ্যাকাউন্টটিকে নকল করা এবং যেমনটি রুট থাকে তেমন।
ম্যাকিয়েজ পাইচোটকা

1
zsh/usr/bin/এটি ইনস্টল করা থাকলে ভুল হওয়া উচিত নয় । সমস্ত শেলগুলি অবশ্যই হওয়া উচিত/bin
xenoterracide

1
@ এক্সেনোটেরাক্সাইড: জেন্টুতে জেডএস রয়েছে /binতবে কিছু ফাইল এতে রাখে /usr/share। এছাড়াও আমি স্পষ্টভাবে বলেছি যে বুট করার সময় লগইন করার সময় সমস্যা হয় (যখন কিছু পরিষেবা ব্যর্থ হয়)।
ম্যাকিয়েজ পাইচোটকা

7

ইস্যু হওয়া উচিত নয়।

শেল-স্ক্রিপ্ট ফাইলগুলি কোন শেলের সাথে তাদের সম্পাদন করা হয় তা স্পষ্টভাবে এনকোড করে। এটি প্রথম লাইনে এনকোড করা হয়েছে বা অন্যান্য প্রোগ্রাম বা স্ক্রিপ্টগুলি একটি নির্দিষ্ট শেল চালায় এবং শেল স্ক্রিপ্টকে আর্গুমেন্ট হিসাবে দেয়।

আমি ভাবতে পারি যে একমাত্র প্রোগ্রামটি ব্যবহারকারীর অ্যাকাউন্ট শেল তথ্য ব্যবহার করে (লগইন প্রক্রিয়া ছাড়াও) প্রোসমেল। সত্যই মজার যদি আপনার ব্যবহারকারী মেলসার্ভারে শেল / বিন / মিথ্যা হিসাবে সেট করে থাকে ... তবে আপনি সাধারণত প্রোম মেইলটিকে মূল হিসাবে চালিত করেন না।

আর একজন প্রার্থী হবেন মূলের ক্রন্টবায় লাইনগুলি। কোন শেল ব্যবহার করা উচিত তা আমি জানি না ond


EL সাধারণত প্রারম্ভকালে ক্রন্ডোমেন দ্বারা শিট সাধারণত / বিন / এস সেট হয়ে যায়।
ইকক্স

3

বোর্ন শেলের জন্য লিখিত স্ক্রিপ্টগুলি বেশিরভাগ সময় BASH বা জেডএসএইচ বা against ফু এর বিপরীতে চালিত হয় কোনও সমস্যা ছাড়াই।

অনেকগুলি লিনাক্স সিস্টেমে কোনও আসল sh ইনস্টল করা হয় না, এর পরিবর্তে প্রায়শই এটি বিন / বাশের বিপরীতে একটি সিমলিংক থাকে।

কিছু স্ক্রিপ্ট যদি কেবল "ধরে" নেয় যে শেলটি সুস্পষ্টভাবে sh, সেগুলি আবার লিখতে হবে। আপনার স্ক্রিপ্টের কোন দোভাষী দরকার তা চয়ন করতে শেবাং প্রক্রিয়াটি থের করে। যদি এটি হয় তবে স্ক্রিপ্টটি #!/bin/shপ্রথম লাইন হিসাবে অন্তর্ভুক্ত করা উচিত ।

আপনার ডিফল্ট শেল সেটিংস এই প্রসঙ্গে প্রাসঙ্গিক হওয়া উচিত নয়।


2

আমি মনে করি না শিকড়ের শেল পরিবর্তন করা কোনও সমস্যার কারণ হতে পারে। আমি মনে করি মনে হচ্ছে কিছু ইউনিক্স (সম্ভবত কিছু বিএসডি রূপগুলি?) টি-টি-টি রুটের ডিফল্ট শেল হিসাবে রয়েছে।

রুট লগইনগুলি যাইহোক বিরল। সাধারণত, আপনি নিজের অ্যাকাউন্টে লগইন করতে পারেন এবং তারপরে su বা sudo থেকে রুট করতে পারেন।

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


নির্ভরতার কারণে আমি মনে করি শেলটি যেমন রেখে দেওয়া ঠিক ততটাই বোধগম্য হয় যাতে একটি বড় সিস্টেম পরিবর্তন (আপগ্রেডের মতো) জিনিসগুলিতে গোলযোগ না করে। আমি একমত যে কোনও লাইভ সিডি বা ইউএসবি দিয়ে এটি ঠিক করা সহজ তবে আমার প্রথম স্থানে এটি ঠিক করতে হবে না।
ফুনেহে

1

কোনও ব্যবহারকারীর লগইন শেল বুট প্রক্রিয়াটিকে প্রভাবিত করে না। আপনি যা খুশি এই শেলটি সেট করতে পারেন। সমস্ত সিস্টেমে বাশ নেই এবং এগুলি ঠিকঠাক কাজ করে। এছাড়াও এটি যদি /usr/bin/zshভুলভাবে ইনস্টল করা থাকে তবে সমস্ত সিস্টেম শেলগুলি থাকা উচিত /bin/bin/shতবে আপনাকে অবশ্যই ডিফল্ট ব্যতীত অন্য কিছুতে নির্দেশ করা উচিত নয় (যতক্ষণ না আপনি জানেন আপনি কী করছেন) যতগুলি স্ক্রিপ্ট #!/bin/shসাধারণত #!/bin/bashবাশকে নির্দেশ করে, যখন তাদের উচিত কারণ তারা বাশিজম এবং অন্যান্য আচরণ ব্যবহার করে যা না zshবা উপর কাজ dash


ওহো দুঃখিত আমি আমার কম্পিউটারে আসলে একটি ভুল করেছি, উভয় bashএবং zshআছে/bin
phunehehe

0

রুটের জন্য আমার ডিফল্ট শেল হিসাবে ব্যাশ রয়েছে । আমি ব্যবহৃত zsh কিছু সময়ের জন্য, কিন্তু তারপর ফিরে গিয়েছিলাম ব্যাশ । আপনি কোন শেল ব্যবহার করেন, তাতে কিছু আসে যায় না।

এটি কেবলমাত্র একটি সমস্যা, যদি একাধিক ব্যক্তির রুট অ্যাক্সেস থাকে। সেক্ষেত্রে আপনি একটি 'সাধারণ ডিনোমিনেটর' নির্বাচন করতে পারেন যা সাধারণত বাশ, কারণ এটি সর্বাধিক ব্যবহৃত শেল।


0

সোলারিসের ক্ষেত্রে / আলোকসজ্জার ক্ষেত্রে সোলারিস রুট শেল মিনি-এফএকিউ উল্লেখ রয়েছে

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

সুতরাং, হ্যাঁ, আপনি যদি সোলারিস বা ইলিউম ব্যবহার করেন তবে এটি ছাড়া অন্য শেলগুলি ব্যবহার করা ভাল sh

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