কীভাবে সেট-ব্যবহারকারী-আইডি প্রক্রিয়াটি ইউনিক্সে কাজ করে?


12

কেউ দয়া করে ইউনিক্সে সেট-ব্যবহারকারী-আইডি প্রক্রিয়াটি ব্যাখ্যা করতে পারেন? এই ডিজাইনের সিদ্ধান্তের পিছনে যৌক্তিকতা কী ছিল? এটি কার্যকর ব্যবহারকারী আইডি প্রক্রিয়া থেকে কীভাবে আলাদা?

উত্তর:


10

আপনি ইউনিক্সে ফাইলগুলির জন্য সাধারণ পঠন, লিখন এবং সম্পাদনের অনুমতি পেতে পারেন।

তবে অনেক অ্যাপ্লিকেশনগুলিতে এই ধরণের অনুমতি কাঠামো - যেমন প্রদত্ত ব্যবহারকারীকে প্রদত্ত ফাইলটি পড়ার সম্পূর্ণ অনুমতি দেওয়া বা ফাইলটি পড়ার অনুমতি নেই - এটি খুব মোটা হয়। এই কারণে, ইউনিক্সে আরেকটি অনুমতি বিট, বিট অন্তর্ভুক্ত রয়েছে set-user-ID। যদি এই বিটটি এক্সিকিউটেবল ফাইলের জন্য সেট করা থাকে, তবে যখনই মালিক ব্যতীত অন্য কোনও ব্যবহারকারী ফাইলটি সম্পাদন করেন, তখন সেই ব্যবহারকারী মালিকের অন্য ফাইলগুলি অ্যাক্সেস করার জন্য সমস্ত ফাইল পড়ার / লেখার / সম্পাদনের সুযোগসুবিধা অর্জন করে!

কোনও ফাইলের জন্য সেট-ব্যবহারকারী-আইডি বিট সেট করতে টাইপ করুন

 chmod u+s filename

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

 chmod 4755 filename

এটিকে সেভড ইউআইডি হিসাবেও উল্লেখ করা হয়। এমন একটি ফাইল চালু করা হয়েছে যাতে একটি সেট-ইউআইডি বিট চালু আছে, সংরক্ষিত ইউআইডি হবে ফাইলটির মালিকের ইউআইডি। অন্যথায়, সংরক্ষিত ইউআইডি হ'ল আসল ইউআইডি।

কার্যকর uid কি?

এই ইউআইডি একটি বিশেষ ক্রিয়া সম্পাদনের জন্য প্রক্রিয়াটির সুবিধাগুলি মূল্যায়নের জন্য ব্যবহৃত হয়। EID হয় রিয়েল ইউআইডি, অথবা সুপারইউজার ইউআইডি এডিউ করা যেতে পারে যদি EID! = 0 হয়। যদি EUID = 0 হয় তবে এটিকে যে কোনও কিছুতে পরিবর্তন করা যেতে পারে।

উদাহরণ

যেমন প্রোগ্রামের একটি উদাহরণ passwd। আপনি যদি এটি সম্পূর্ণরূপে তালিকাভুক্ত করেন তবে দেখতে পাবেন যে এতে সেট-ইউআইডি বিট রয়েছে এবং মালিকটি "রুট"। একটি সাধারণ ব্যবহারকারী যখন "এমটিকে" বলুন, রান করে passwd, এটি দিয়ে শুরু হয়:

Real-UID = mtk  
Effective-UID = mtk  
Saved-UID = root

রেফারেন্স লিঙ্ক 1
রেফারেন্স লিংক 2


5

man credentialsএই ক্ষেত্রে তথ্যের একটি ভাল উত্স। আরও দেখুন এই questiin তাই । Explanationতিহাসিক ব্যাখ্যার জন্য এই সংরক্ষণাগারযুক্ত পোস্টটি দেখুন

"সেট ইউআইডি" এবং "কার্যকর ইউআইডি" কে একটি প্রক্রিয়া বলার পরিবর্তে ইউআইডিগুলির পুরো ধারণাটিকে বলা উচিত। বিভিন্ন ইউআইডির অস্তিত্বের যুক্তি হ'ল সুযোগ-সুবিধার বিচ্ছেদ নিয়ে বিভিন্ন ঝামেলা। এমনকি নিয়মিত (অবাঞ্ছিত) ব্যবহারকারীদের মাঝে মাঝে এমন জিনিস (অ্যাক্সেস রিসোর্স) করা প্রয়োজন যা কেবল সুবিধাভোগী ব্যবহারকারীরা করতে পারেন। এটি সহজেই অর্জন করতে, প্রোগ্রামগুলি তাদের ইউআইডি পরিবর্তন করতে পারে। এর মধ্যে 3 ধরণের রয়েছে:

  • আসল ইউআইডি - ইউআইডি যা একটি প্রক্রিয়ার মালিক

  • কার্যকর ইউআইডি - ইউআইডি একটি প্রক্রিয়া বর্তমানে চলমান - এটি কোনও নির্দিষ্ট মুহুর্তে প্রক্রিয়াটির আসল ক্ষমতাগুলি নির্ধারণ করে। এটি psআপনাকে ব্যবহারকারীর ক্ষেত্রেও দেখায়।

  • সংরক্ষিত সেট ইউআইডি - আসল এবং কার্যকর ইউআইডিগুলির মধ্যে পিছনে পিছনে স্যুইচ করার জন্য ব্যবহৃত স্থানধারক

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


1

এমটেকের ব্যাখ্যাটি একটি ভাল।

passwdউদাহরণস্বরূপ বিশেষাধিকার উদ্দীপন এক - passwd কোন সবসময় রুট হিসাবে সঞ্চালিত হয় যেহেতু এটি যে ফাইল শুধুমাত্র root পরিবর্তন করতে অনুমতি দেওয়া হয় পরিবর্তন আবশ্যক। এটি গুরুত্বপূর্ণ করে তোলে যে পাসডাব্লু এক্সিকিউটেবল বাফার ওভারফ্লো ইত্যাদির প্রবণতা না ঘটে, যেমন কোনও চতুর সাধারণ ব্যবহারকারী এটি ব্যবহার করতে সক্ষম হতে পারে যার জন্য উদ্দেশ্য ছিল না।

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

মনে রাখবেন যে ইউআইডি প্রোগ্রামের ভিত্তিতে সেট করা সম্ভব হয় এমনকি যদি স্যুইট বিট এক্সিকিউটেবলের উপর সেট না করা থাকে তবে এটি বাড়ানোর পক্ষে কাজ করবে না। উদাহরণস্বরূপ, আপনি যদি সাধারণ ব্যবহারকারী হন এবং এমন কোনও প্রোগ্রাম লিখেন যা নিজেই কোনও সময়ে uid নির্ধারণ করে, সেই প্রোগ্রামটি রুটে যেতে পারে না। আপাচি এইভাবে কাজ করে, আমি বিশ্বাস করি। এটি সাধারণত মূল দ্বারা শুরু হয় এবং এর একটি প্রক্রিয়া থাকে যা পরে এমন শিশুদের কাঁটাচামচ করে যা কোনও প্রাইভেলিজযুক্ত ব্যবহারকারীকে (যেমন, "httpd") সরিয়ে দেয় u সেই শিশু প্রক্রিয়াগুলি হ'ল আসল ওয়েব সার্ভারটি কী কাজ করে।

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