সুডোর অভ্যন্তরীণ কাজ কীভাবে?


74

sudoঅভ্যন্তরীণভাবে কীভাবে কাজ করে? এটি কীভাবে সম্ভব যে এটি রুট পাসওয়ার্ড না রেখেই রুট হয়ে উঠতে পারে su? কোন সিস্টেমে ইত্যাদি প্রক্রিয়ায় জড়িত? এটি কি লিনাক্সের কোনও ফাঁকানো সুরক্ষা গর্ত নয় (উদাহরণস্বরূপ, কেন আমি একটি ভারী-প্যাচ সংকলন করতে পারি sudoনি যা কেবল নিয়মিত যা কিছু sudoকরেছিল, কিন্তু অনিবদ্ধ ব্যবহারকারীর পাসওয়ার্ড জিজ্ঞাসা করেনি)?

আমি লগইন এবং সু ইন্টার্নাল পড়েছি । আমি এটিও পড়েছি সুডো কীভাবে ব্যবহারের উদ্দেশ্যে? তবে শিরোনাম সত্ত্বেও, তারা মূলত suএবং এর মধ্যে পার্থক্যগুলি মোকাবেলা করে sudo

উত্তর:


80

এক্সিকিউটেবলের দিকে একবার নজর রাখলে sudo:

$ which sudo
/usr/bin/sudo
$ ls -la /usr/bin/sudo
---s--x--x 2 root root 208808 Jun  3  2011 /usr/bin/sudo

আপনি লক্ষ্য করবেন যে এতে অনুমতি বিট রয়েছে ---s--x--x। এগুলি নীচে ভেঙে ফেলা যায়:

-|--s|--x|--x
-      - first dash denotes if a directory or a file ("d" = dir, "-" = file)  
--s    - only the setuid bit is enabled for user who owns file
--x    - only the group execute bit is enabled
--x    - only the other execute bit is enabled

সুতরাং যখন কোনও প্রোগ্রামের সেটুইড বিট সক্ষম থাকে (SID হিসাবেও পরিচিত) এর অর্থ হ'ল কেউ যখন এই প্রোগ্রামটি চালায় তখন এটি ফাইলের মালিক, যার শংসাপত্রগুলি দিয়ে চালিত হবে, ওরফে। এই ক্ষেত্রে মূল।

উদাহরণ

যদি আমি নিম্নলিখিত কমান্ডটি ব্যবহারকারী হিসাবে ব্যবহার করি স্যামল:

$ whoami
saml

$ sudo su -
[sudo] password for saml: 

আপনি লক্ষ্য করবেন যে বাস্তবায়নের বাস্তবায়ন sudoমূল হিসাবে চলছে:

$ ps -eaf|grep sudo
root     20399  2353  0 05:07 pts/13   00:00:00 sudo su -

নির্ধারিত প্রক্রিয়া

আপনি যদি আগ্রহী হন তবে SID কীভাবে কাজ করে তা একবার দেখুন man setuid। ম্যান পৃষ্ঠার একটি অংশ এখানে দেওয়া হয়েছে যা এটি আমার চেয়ে আরও ভাল ব্যাখ্যা করে:

setuid () কলিং প্রক্রিয়াটির কার্যকর ব্যবহারকারী আইডি সেট করে। যদি কলারের কার্যকর ইউআইডি মূল হয় তবে আসল ইউআইডি এবং সংরক্ষিত সেট-ব্যবহারকারী-আইডিও সেট করা থাকে। লিনাক্সের অধীনে সেপুইড () POSIX সংস্করণের মতো _POSIX_SAVED_IDS বৈশিষ্ট্য সহ প্রয়োগ করা হয়। এটি কোনও সেট-ব্যবহারকারী-আইডি (রুট ব্যতীত) প্রোগ্রামটিকে তার সমস্ত ব্যবহারকারীর সুবিধাগুলি বাদ দিতে, কিছু অন-সুবিধাযুক্ত কাজ করতে এবং তারপরে সুরক্ষিতভাবে মূল কার্যকর ব্যবহারকারী আইডি পুনরায় বন্ধ করতে সহায়তা করে।

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

এখানে মূল ধারণাটি হ'ল প্রোগ্রামগুলিতে একটি আসল ইউজারিড (ইউআইডি) এবং কার্যকর একটি (ইইডি) থাকে। এই বিট সক্ষম হয়ে থাকলে সেটুইড কার্যকর ইউজারিড (ইইউডি) সেট করে।

সুতরাং কার্নেলের দৃষ্টিকোণ থেকে এটি জানা যায় যে আমাদের উদাহরণে samlএখনও মূল মালিক (ইউআইডি), তবে ইইউআইডি সেট করা হয়েছে যার সাথে এক্সিকিউটেবলের মালিক।

setgid

আমার আরও উল্লেখ করা উচিত যে আমরা যখন sudo কমান্ডের অনুমতিগুলি ভেঙে ফেলি তখন বিটের দ্বিতীয় গ্রুপটি গ্রুপের অনুমতিের জন্য ছিল। গ্রুপ বিটগুলির মধ্যে সেট গ্রুপের আইডি (ওরফে সেটগ্রিড, এসজিআইডি) নামে কিছু সেটআপের অনুরূপও রয়েছে। এটি মালিকানার শংসাপত্রগুলির পরিবর্তে গোষ্ঠী শংসাপত্রগুলি দিয়ে প্রক্রিয়া চালিত করে SID এর মতো একই কাজ করে।

তথ্যসূত্র


4
sudo -sপরিবর্তে আপনার ব্যবহার করা উচিত sudo suকারণ এটি অকেজো ব্যবহার su। :)
টোটার

4

আসল sudoবাইনারি হ'ল নির্ধারিত মূল , এবং আপনি কেবল এইভাবে সেট করা ফাইলগুলি অস্তিত্বের মধ্যে রাখতে পারবেন না।

সেটুইড এবং সেটজিড (যথাক্রমে "এক্সিকিউশনের উপর সেট ব্যবহারকারী আইডি" এবং "মৃত্যুর পরে নির্ধারিত গ্রুপ আইডি" এর জন্য সংক্ষিপ্ত) [১] হ'ল ইউনিক্স অ্যাক্সেস রাইটস ফ্ল্যাগ যা ব্যবহারকারীদের যথাক্রমে মৃত্যুদন্ডপ্রাপ্তের মালিক বা গোষ্ঠীর অনুমতি নিয়ে এক্সিকিউটেবল চালানোর অনুমতি দেয় এবং ডিরেক্টরিতে আচরণ পরিবর্তন করতে।


ঠিক আছে, এটি আমার প্রশ্নের অংশের উত্তর দেয়। আপনি যদি সুডো কীভাবে এই বিটটি ব্যবহার করেন এবং এই বিটটি কী ব্যবহার করে তার সম্পর্কে আরও বিশদ বিবরণ জানাতে চাই, আমি এই উত্তরটি গ্রহণ করতে পছন্দ করব
strugee

2

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

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