সঙ্গে su, আপনি পরিণত ডিফল্টরূপে রুট কিন্তু সম্ভাব্য অন্য ব্যবহারকারী - অন্য ব্যবহারকারী। আপনি যদি বলেন su -, আপনার পরিবেশটি সেই ব্যবহারকারীর লগইন পরিবেশের সাথেও প্রতিস্থাপন হয়ে যায়, যাতে আপনি যা দেখেন তা সেই ব্যবহারকারী হিসাবে লগ ইন করা থেকে পৃথক হয়। কোনও suব্যবহারকারী যখন লগ ইন করেন তখন সেই ব্যবহারকারীর দ্বারা করা পদক্ষেপ থেকে অন্য ব্যবহারকারীর কাছে যাওয়ার সময় সিস্টেমটি আপনাকে বলার কোনও উপায় নেই ।
বিষয়গুলি এর সাথে খুব আলাদা sudo:
কমান্ডগুলি আপনি টার্গেট ব্যবহারকারী হিসাবে sudo নির্বাহ করেন - ডিফল্টরূপে মূল, তবে এর সাথে পরিবর্তনযোগ্য -u- তবে এটি আপনার দ্বারা চালিত কমান্ডগুলিকে লগ করে, আপনার ব্যবহারকারীর নাম দিয়ে ট্যাগ করে যাতে দোষের পরে নির্ধারিত হতে পারে। :)
sudoখুব নমনীয়। উদাহরণস্বরূপ, প্রদত্ত ব্যবহারকারী বা ব্যবহারকারীদের একটি গ্রুপকে চালানোর অনুমতি দেওয়া আদেশগুলি আপনি সীমাবদ্ধ করতে পারেন। সাথে su, এটি সব কিছুই বা কিছুই নয়।
এই বৈশিষ্ট্যটি সাধারণত ভূমিকা সংজ্ঞায়িত করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনি চালানোর জন্য অনুমোদিত একটি "ব্যাকআপ" গোষ্ঠীটি সংজ্ঞায়িত করতে পারেন dumpএবং tarযার প্রত্যেকটিরই সিস্টেম ডিস্কটিকে সঠিকভাবে ব্যাক আপ করার জন্য রুট অ্যাক্সেসের প্রয়োজন।
আমি এখানে এটি উল্লেখ করছি কারণ এর অর্থ আপনি কাউকে sudoতাদের যোগ্যতা sudo -sবা sudo bashক্ষমতা না দিয়ে সুবিধাগুলি দিতে পারেন। তাদের কেবলমাত্র তাদের কাজটি করার জন্য প্রয়োজনীয় অনুমতি রয়েছে, যেখানে তাদের সাথে suপুরো সিস্টেমটি চালানো হয়েছে। আপনাকে sudo viএগুলি সম্পর্কে সতর্কতা অবলম্বন করতে হবে, যদিও: আপনি যদি কাউকে বলার ক্ষমতা দেন তবে উদাহরণস্বরূপ, তারা শেল আউট করতে পারে viএবং কার্যকরভাবে একই ক্ষমতা থাকতে পারে sudo -s।
কারণ এটি রুট পাসওয়ার্ডের পরিবর্তে সুডোরের পাসওয়ার্ড নেয়, sudoএকাধিক sudoers এর মধ্যে অনুমতি বিচ্ছিন্ন করে।
এটি একটি প্রশাসনিক সমস্যা সমাধান করে su, এটি হ'ল যখন রুট পাসওয়ার্ড পরিবর্তন হয়, যাদের এটি ব্যবহার করতে হবে তাদের সকলকে suবলা উচিত। sudosudoers এর পাসওয়ার্ড স্বাধীনভাবে পরিবর্তন করতে দেয়। প্রকৃতপক্ষে, সিস্টেমে sudoসমস্ত সাসাদমিনের কাজটি করার জন্য বাধ্য করার জন্য কোনও সিস্টেমে রুট ব্যবহারকারীর অ্যাকাউন্টটি পাসওয়ার্ড-লক করা সাধারণ sudo। অনেকগুলি বিশ্বস্ত sudoers সহ একটি বৃহত সংস্থায়, এর অর্থ যখন সিসাদমিনগুলির মধ্যে একটি চলে যায়, আপনাকে রুট পাসওয়ার্ড পরিবর্তন করতে হবে এবং যারা এডমিন রয়ে গেছে তাদের এগুলি বিতরণ করতে হবে না।
মধ্যে মূল পার্থক্য sudo bashএবং sudo -sযে -sখাটো হয় এবং আপনি উপায়ে একটি দম্পতি আপনার ব্যবহারকারীর ডিফল্ট শেল মধ্যে সঞ্চালনের জন্য কমান্ড পাস করতে দেয়:
আপনি বলতে পারেন sudo -s some-commandযা some-commandআপনার শেলের নীচে চলে । এটি মূলত শর্টহ্যান্ডের জন্য sudo $SHELL -c some-command।
পরিবর্তে আপনি কমান্ডগুলি শেলের মানক ইনপুটগুলিতে যেমন পাস করতে পারেন sudo -s < my-shell-script। আপনি একটি সঙ্গে এই ব্যবহার করতে পারে heredoc একটি একক বিভিন্ন আদেশগুলি প্রেরণ করতে sudo, কল টাইপ করার দরকার এড়ানো sudoবারবার।
এই দুটি আচরণই areচ্ছিক। আরও সাধারণভাবে, আপনি -sএকা দেন, সুতরাং এটি কেবল আপনার ব্যবহারকারীর শেলটি ইন্টারেক্টিভভাবে চালায়। যে মোডে, এটা থেকে পৃথক sudo bashযে এটা তুলনায় বিভিন্ন শেল চালানো হতে পারে bash, যেহেতু এটি প্রথম দেখায় SHELLএনভায়রনমেন্ট ভেরিয়েবল, এবং তারপর যে যদি সেট না করলে, আপনার ব্যবহারকারীর লগ-ইন শেল সেটিং এ, সাধারণত মধ্যে /etc/passwd।
দ্বারা চালিত শেল sudo -sআপনার বর্তমান ব্যবহারকারীর পরিবেশের উত্তরাধিকারী। আপনি যদি যা চান তা যদি পরিষ্কার পরিবেশ হয়, যেমন আপনি লগইনের ঠিক পরে পান তবে পরিবর্তে আপনি যা চান তা হ'ল sudo -iতুলনামূলক সাম্প্রতিক সংযোজন sudo। সাধারণভাবে বলতে গেলে, sudo -iহয় sudo -sযেমন su -হয় suএটি সব কিন্তু কিছু কী এনভায়রনমেন্ট ভেরিয়েবল রিসেট এবং আপনি আপনার ব্যবহারকারীর হোম ডিরেক্টরি ফিরে পাঠায়:। যদি আপনি স্ট্যান্ডার্ড ইনপুট বা শেলের নীচে চালানোর আদেশও না দিয়ে থাকেন তবে sudo -i some-commandএটি সেই শেলটি একটি ইন্টারেক্টিভ লগইন শেল হিসাবে চালিত করবে, সুতরাং আপনার ব্যবহারকারীর শেল স্টার্টআপ স্ক্রিপ্টগুলি (যেমন .bash_profile) আবার চালানো হবে।
এই সমস্ত sudo -iকিছু তুলনায় যথেষ্ট সুরক্ষিত করে তোলে sudo -s। কেন? কারণ যদি কেউ এর আগে আপনার পরিবেশ পরিবর্তন করতে পারে তবে sudo -sতারা অনিচ্ছাকৃত কমান্ড কার্যকর করতে পারে। সর্বাধিক সুস্পষ্ট কেসটি সংশোধন করা হচ্ছে SHELL, তবে এটি সরাসরি কমও ঘটতে পারে যেমন PAGERআপনি যদি বলছেন man fooনীচে থাকাকালীন sudo -s।
আপনি বলতে পারেন, "যদি তারা সংশোধন করতে পারে তবে তারা সংশোধন PAGERকরতে পারে PATHএবং তারপরে তারা কেবল একটি খারাপ sudoপ্রোগ্রামের বিকল্প নিতে পারে ," তবে যথেষ্ট /usr/bin/sudo /bin/bashফাঁস হওয়া কেউ এই ফাঁদটি এড়াতে বলতে পারেন । আপনি সম্ভবত এতটা অসম্পূর্ণ নন যে আপনি অন্য সমস্ত সংবেদনশীল পরিবেশের ভেরিয়েবলের ফাঁদগুলিও এড়াতে পারেন । আপনি কি ভিসিএস কমান্ড EDITORচালানোর আগে উদাহরণস্বরূপ চেক করতেও মনে রেখেছিলেন ? এইভাবে ।sudo -i
যেহেতু sudo -iআপনার কার্য ডিরেক্টরিটি আপনার ব্যবহারকারীর হোম ডিরেক্টরিতেও পরিবর্তন করে, আপনি এখনও sudo -sসেই পরিস্থিতিতে ব্যবহার করতে চাইতে পারেন যেখানে আপনি জানতেন যে আপনি cdযখন দৌড়েছিলেন তখন আপনি যে একই ডিরেক্টরিতে থাকতে চান সেখানে থাকতে চান sudo। যদিও আপনি ছিলেন সেখানে এটি এখনও নিরাপদ sudo -iএবং cdফিরে।
sudo su -এইভাবে আপনার রুট পাসওয়ার্ডের প্রয়োজন হবে না এবং-হোম ডিরেক্টরিটি সঠিকভাবে সেট করা আছে তা নিশ্চিত করে।