বিষয়টি হ'ল, আমি সবসময় ভেবেছিলাম যে এই অনুমতিগুলি একে অপরের উপর পতিত হয়, সবচেয়ে সাধারণ এক (অন্যান্য -> গ্রুপ -> ব্যবহারকারী) দিয়ে শুরু হয়।
যদি এটি হয় তবে "অন্যান্য" অনুমতিগুলি সবার জন্য প্রযোজ্য হবে।
অন্য কথায়, যদি o = rwx কে গ্রাহ্য করে যে গ্রুপ এবং ব্যবহারকারীর জন্য অনুশীলনগুলি কী?
এটি আপনার আগের বাক্য থেকে আলাদা। এখানে আপনি বোঝাচ্ছেন যে অনুমতিগুলি একত্রে বা একসাথে করা হয়েছে, যেমন ইউজারএক্সের যদি ফাইলটির মালিকানা থাকে এবং ফাইলটি ব্যবহারকারী-পঠনযোগ্য হয়, বা যদি এমন কোনও গ্রুপ যে ইউজারএক্স ফাইলটির মালিক হয় এবং ফাইলটি গ্রুপ হয় পাঠযোগ্য, বা ফাইলটি অন্য পাঠ্যযোগ্য। তবে এটি কীভাবে কাজ করে তা নয়। প্রকৃতপক্ষে, এর o=rwxঅর্থ হ'ল rwxঅনুমতিগুলি অন্যের জন্য প্রযোজ্য, কিন্তু এটি সত্তা যেগুলি অন্য নয় সেগুলি সম্পর্কে কিছুই বলে না।
প্রথমত, কোনও ব্যবহারকারী কোন গ্রুপের অন্তর্ভুক্ত তা সরাসরি বিবেচনা করে না। কার্নেলের সাথে গোষ্ঠীভুক্ত ব্যবহারকারীদের ধারণা নেই। কার্নেল যা বজায় রাখে তা হ'ল প্রতিটি প্রক্রিয়াটির জন্য একটি ব্যবহারকারী আইডি ( কার্যকর ইউআইডি ) এবং গ্রুপ আইডির একটি তালিকা (কার্যকর জিআইডি এবং পরিপূরক জিআইডি)। লগইন প্রক্রিয়া দ্বারা গ্রুপগুলি লগইন সময় নির্ধারিত হয় - এটি লগইন প্রক্রিয়া যা গ্রুপ ডাটাবেস পড়বে (যেমন /etc/group)। ব্যবহারকারী এবং গোষ্ঠী আইডিগুলি শিশু প্রক্রিয়া দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত ¹
যখন কোনও প্রক্রিয়া fileতিহ্যগত ইউনিক্স অনুমতি সহ কোনও ফাইল খোলার চেষ্টা করে:
- যদি ফাইলটির নিজস্ব ব্যবহারকারী প্রক্রিয়াটির কার্যকর ইউআইডি হয় তবে ব্যবহারকারীর অনুমতি বিটগুলি ব্যবহৃত হয়।
- অন্যথায়, যদি ফাইলটির নিজস্ব গোষ্ঠী প্রক্রিয়াটির কার্যকর জিআইডি বা প্রক্রিয়াটির পরিপূরক গোষ্ঠী আইডি হয় তবে গ্রুপ অনুমতি বিটগুলি ব্যবহৃত হয়।
- অন্যথায়, অন্যান্য অনুমতি বিট ব্যবহৃত হয়।
Rwx বিটের কেবলমাত্র একটি সেট ব্যবহৃত হয়। ব্যবহারকারী অন্য দলের চেয়ে অগ্রাধিকার নেয় এমন গোষ্ঠীর চেয়ে অগ্রাধিকার নেয়। যখন অ্যাক্সেস নিয়ন্ত্রণের তালিকা থাকে , উপরে বর্ণিত অ্যালগরিদমটি সাধারণীকরণ করা হয়:
- প্রক্রিয়াটির কার্যকর ইউআইডির জন্য যদি ফাইলে কোনও এসিএল থাকে তবে অ্যাক্সেস দেওয়া হয়েছে কিনা তা নির্ধারণ করার জন্য এটি ব্যবহৃত হয়।
- অন্যথায়, যদি প্রক্রিয়াটির কার্যকর জিআইডি বা প্রক্রিয়াটির কোনও পরিপূরক গোষ্ঠী আইডির জন্য ফাইলটিতে এসিএল থাকে তবে গ্রুপ অনুমতি বিটগুলি ব্যবহৃত হয়।
- অন্যথায়, অন্যান্য অনুমতি বিট ব্যবহৃত হয়।
মুখোশের প্রভাব সহ এসিএল এন্ট্রি কীভাবে ব্যবহার করা হয় সে সম্পর্কে আরও তথ্যের জন্য যখন ব্যবহারকারী একাধিক গোষ্ঠীর অন্তর্ভুক্ত থাকে তখন এসিএলএসের নজিরও দেখুন ।
এটি -rw----r-- alice internsএমন কোনও ফাইলকে নির্দেশ করে যা অ্যালিস দ্বারা পড়া এবং লিখিত হতে পারে এবং যা ইন্টার্নগুলি ব্যতীত অন্য সকল ব্যবহারকারী দ্বারা পড়তে পারে। অনুমতি এবং মালিকানা সহ একটি ফাইল ----rwx--- alice internsঅ্যালিস ব্যতীত কেবল ইন্টার্নগুলিতে অ্যাক্সেসযোগ্য (সে ইন্টার্নী হোক না কেন)। যেহেতু অ্যালিস chmodঅনুমতিগুলি পরিবর্তন করার জন্য কল করতে পারে, এটি কোনও সুরক্ষা সরবরাহ করে না; এটি একটি প্রান্তের কেস এসিএলযুক্ত সিস্টেমে, সাধারণীকরণ প্রক্রিয়া নির্দিষ্ট ব্যবহারকারী বা নির্দিষ্ট গোষ্ঠী থেকে অনুমতিগুলি সরিয়ে দেয়, যা কখনও কখনও দরকারী।
প্রতিটি ক্রিয়াকলাপের জন্য সমস্ত বিট বা পড়ার পরিবর্তে (পড়ুন, লিখুন, সম্পাদন করুন) বিটের একক সেট ব্যবহার করার বিভিন্ন সুবিধা রয়েছে:
- এটি ACLs সহ সিস্টেমে ব্যবহারকারী বা গোষ্ঠীগুলির একটি সেট থেকে অনুমতিগুলি সরিয়ে দেওয়ার মজাদার কার্যকর প্রভাব ফেলে। এসিএলবিহীন সিস্টেমে এক গোষ্ঠী থেকে অনুমতিগুলি সরানো যেতে পারে।
- এটি কার্যকর করা সহজ: একাধিক বিটের বিট একসাথে একত্রিত করার চেয়ে বিটের একটি সেট পরীক্ষা করুন।
- কোনও ফাইলের অনুমতি বিশ্লেষণ করা সহজ, কারণ কম অপারেশন জড়িত।
¹ তারা যখন একটি পরিবর্তন করতে পারেন setuid বা setgid প্রক্রিয়া মৃত্যুদন্ড কার্যকর করা হয়। এটি হাতের সমস্যার সাথে সম্পর্কিত নয়।