ফাইল এবং ডিরেক্টরিগুলিতে বিশেষাধিকারপ্রাপ্ত অ্যাক্সেস আসলে ক্ষমতা দ্বারা নির্ধারিত হয়, কেবল না থাকার কারণে rootনয়। অনুশীলনে, rootসাধারণত সমস্ত সম্ভাব্য ক্ষমতা থাকে তবে এমন পরিস্থিতি রয়েছে যেখানে তাদের সমস্ত / অনেককেই বাদ দেওয়া যেতে পারে, বা কিছু অন্য ব্যবহারকারীদের (তাদের প্রক্রিয়াগুলি) দেওয়া হয়।
সংক্ষেপে, আপনি ইতিমধ্যে বর্ণনা করেছেন যে অ্যাক্সেস নিয়ন্ত্রণ চেকগুলি কোনও সুবিধাযুক্ত প্রক্রিয়ার জন্য কীভাবে কাজ করে। বিভিন্ন ক্ষমতাগুলি এটি কীভাবে প্রভাবিত করে তা এখানে রয়েছে:
এখানে প্রধান সামর্থ্য হ'লCAP_DAC_OVERRIDE , এমন একটি প্রক্রিয়া যা "ফাইলগুলি পড়তে, লিখতে এবং অনুমতি চেকগুলি চালিয়ে যেতে" পারে। এর মধ্যে রয়েছে যে কোনও ফাইলের পড়া এবং লেখার পাশাপাশি ডিরেক্টরিগুলি পড়া, লেখা এবং অ্যাক্সেস।
এটি বাস্তবায়িত হিসাবে চিহ্নিত নয় এমন ফাইলগুলি কার্যকর করার ক্ষেত্রে প্রযোজ্য নয়। ( ) -এর মন্তব্যgeneric_permissionfs/namei.c , ফাইলগুলির অ্যাক্সেস চেক করার আগে, এটি বলে
পঠন / লেখার ড্যাকগুলি সর্বদা ওভাররিডযোগ্য। কমপক্ষে একটি এক্সিকিউট বিট সেট থাকাকালীন এক্সিকিউটেবল ডিএসিগুলি ওভাররাইডযোগ্য।
এবং কোডটি পরীক্ষা করে xযদি আপনি ফাইলটি চালনার চেষ্টা করছেন তবে কমপক্ষে একটি বিট সেট আছে। আমার সন্দেহ হয় দুর্ঘটনাক্রমে এলোমেলো ডেটা ফাইল চালানো এবং ত্রুটি বা বিজোড় ফলাফল পেতে রোধ করার জন্য এটি কেবল একটি সুবিধা বৈশিষ্ট্য।
যাইহোক, আপনি যদি অনুমতিগুলি ওভাররাইড করতে পারেন তবে আপনি কেবল একটি কার্যকর কার্যকর অনুলিপি তৈরি করতে পারেন এবং এটি চালাতে পারেন। (যদিও এটি কোনও প্রক্রিয়ার সেতুযুক্ত ফাইলগুলির জন্য তত্ত্বের ক্ষেত্রে কোনও পার্থক্য আনতে CAP_DAC_OVERRIDEপারে তবে ফাইল অনুমতিগুলি ওভাররাইড করতে সক্ষম ছিল )) তবে এর সাথে অন্যান্য সম্পর্কিত ক্ষমতা ( CAP_FSETID/ CAP_FOWNER/ CAP_SETUID) ছিল না But তবে CAP_DAC_OVERRIDEএডিটিং /etc/shadowএবং স্টাফের অনুমতি দেয় তাই এটি প্রায় সমান যাইহোক যাইহোক সম্পূর্ণ রুট অ্যাক্সেস থাকার জন্য।)
এমন CAP_DAC_READ_SEARCHক্ষমতাও রয়েছে যা কোনও ফাইল পড়তে এবং যে কোনও ডিরেক্টরিতে অ্যাক্সেস করতে দেয় তবে তাদের চালানো বা লিখতে দেয় না; এবং CAP_FOWNERএটি কোনও প্রক্রিয়া এমন স্টাফ করার অনুমতি দেয় যা সাধারণত ফাইলের মালিকদের জন্য অনুমতি বিট এবং ফাইল গ্রুপ পরিবর্তন করার মতো সংরক্ষণ করা হয়।
ডিরেক্টরিতে স্টিকি বিট ওভাররাইডিং কেবলমাত্র নীচে উল্লিখিত হয় CAP_FOWNER, সুতরাং মনে হয় এটি CAP_DAC_OVERRIDEএড়ানো যথেষ্ট নয়। (এটি আপনাকে লেখার অনুমতি দিবে, তবে সাধারণত স্টিকি ডিরেক্টরিগুলিতে আপনার যেভাবেই থাকে এবং +tএটি সীমাবদ্ধ করে দেয়))
(আমি বিশেষ ডিভাইসগুলিকে এখানে "ফাইল" হিসাবে গণ্য করি generic_permission()directories কমপক্ষে ডিরেক্টরিগুলির জন্য কেবলমাত্র টাইপ চেক আছে, তবে আমি এটির বাইরে পরীক্ষা করিনি।)
অবশ্যই, এখনও এমন পরিস্থিতি রয়েছে যেখানে এমনকি ক্ষমতাগুলি আপনাকে ফাইলগুলি সংশোধন করতে সহায়তা করবে না:
- কিছু ফাইল রয়েছে
/procএবং /sysযেহেতু সেগুলি প্রকৃত ফাইল নয়
- সেলইনাক্স এবং অন্যান্য সুরক্ষা মডিউল যা মূলকে সীমাবদ্ধ করে
chattrঅপরিবর্তনীয় +iএবং কেবল +aএক্সট 2 / এক্সট3 / এক্সট 4-তে পতাকা যুক্ত করে, উভয়ই মূল এমনকি বন্ধ করে দেয় এবং ফাইলের পুনরায় নাম ইত্যাদিও প্রতিরোধ করে
- নেটওয়ার্ক ফাইল সিস্টেমগুলি, যেখানে সার্ভার নিজস্ব অ্যাক্সেস নিয়ন্ত্রণ করতে পারে, যেমন
root_squashএনএফএস মানচিত্রে কারও কাছে রুট নেই
- FUSE, যা আমি ধরে নিই যে কিছু করতে পারে
- পঠনযোগ্য কেবল মাউন্টগুলি
- কেবলমাত্র পঠনযোগ্য ডিভাইসগুলি
capabilities(7)ম্যান পৃষ্ঠায় মিরর করা হয়নি বলে মনে হচ্ছে - একটি বাগ রিপোর্ট ফাইল করা বিবেচনা করুন!