111 বা 333 এর মতো লিনাক্স অনুমতিগুলির উদ্দেশ্য কী (যেমন ব্যবহারকারী ব্যবহারকারী কার্যকর করতে পারে তবে ফাইলটি পড়তে পারে না ), যদি কার্যকর করার ক্ষমতাটি স্বয়ংক্রিয়ভাবে পড়ার ক্ষমতা বোঝায় না?
111 বা 333 এর মতো লিনাক্স অনুমতিগুলির উদ্দেশ্য কী (যেমন ব্যবহারকারী ব্যবহারকারী কার্যকর করতে পারে তবে ফাইলটি পড়তে পারে না ), যদি কার্যকর করার ক্ষমতাটি স্বয়ংক্রিয়ভাবে পড়ার ক্ষমতা বোঝায় না?
উত্তর:
আমি এটি নিয়ে খেলেছি এবং দৃশ্যত, এক্সিকিউটিভ অনুমতিগুলি পড়ার অনুমতি বোঝায় না। বাইনারিগুলি পাঠযোগ্য না হয়ে কার্যকর হতে পারে:
$ echo 'int main(){ puts("hello world"); }' > hw.c
$ make hw
$ ./hw
hello world
$ chmod 111 hw
$ ./hw
hello world
$ cat hw
/bin/cat: hw: Permission denied
যদিও স্ক্রিপ্টগুলি কার্যকর করতে পারি না, যদি না তাদের উভয়ই অনুমতি বিট পড়ে এবং চালায়:
$ cat > hw.sh
#!/bin/bash
echo hello world from bash
^D
$ chmod +x ./hw.sh
$ ./hw.sh
hello world from bash
$ chmod 111 ./hw.sh
$ ./hw.sh
/bin/bash: ./hw.sh: Permission denied
/bin/bash hw.sh
, এবং তারপরে বাশ hw.sh
পড়ার জন্য খোলার চেষ্টা করে (এবং ব্যর্থ হয়)।
এটি ডিরেক্টরিগুলির জন্য অর্থবহ করে তোলে, উদাহরণস্বরূপ আপনি যদি কোনও নির্দিষ্ট ডিরেক্টরিতে (গোপন) এক্সিকিউটেবল রাখেন এবং তারপরে ব্যবহারকারীরা ডিরেক্টরি বিষয়বস্তু দেখতে না পেয়ে সেই ফাইলগুলিকে কল করার অনুমতি দেন (তবে আপনি তাদের অবহিত করার পরে একটি নির্দিষ্ট ফাইল রয়েছে তা জেনে!) 111 এর তুলনায় 333 ডিরেক্টরিগুলির বিষয়বস্তু দেখতে সক্ষম না হয়ে সেই ডিরেক্টরিতে / থেকে ফাইলগুলি লিখতে / মুছতে সক্ষম করে।
স্পষ্টতই সমস্ত সংমিশ্রণগুলি সেগুলি কার্যকর নয় তবে আপনি নির্দিষ্টভাবে উল্লেখ করেছেন এমনটি নিতে ... আপনার আসলে read
কোনও ফাইল চালানোর অনুমতি প্রয়োজন নেই - কেবল execute
অনুমতি - যদি না প্রশ্নযুক্ত ফাইলটি কোনও স্ক্রিপ্ট না হয় (যেমন শেল স্ক্রিপ্ট) ( .sh
), পার্ল-স্ক্রিপ্ট ( .pl
) এবং তাই)। সাধারণ বাইনারিগুলি কেবল execute
অনুমতি নিয়েই কার্যকর করা যায় । * বিএসডি-সিস্টেমে, বেশ কয়েকটি এক্সিকিউটেবল execute
অনুমতি ছাড়াই অনুমতি দেয় read
, বিশেষত "সুরক্ষা-গুরুত্বপূর্ণ" কমান্ডের উপর - যেমন su
।
তাহলে ব্যবহারকারীগণকে read
-পরিমিতি (এবং কেবলমাত্র execute
-প্রেমিসন) দিচ্ছেন না কেন ? এমন একটি ফাইল বেক করুন যা কোনও ব্যবহারকারী দ্বারা পঠনযোগ্য নয়, সেই ব্যবহারকারী দ্বারা অনুলিপি করা যাবে না ! read
অনুমতি অপসারণ , ব্যবহারকারীদের তাদের নিজস্ব "ব্যক্তিগত" এক্সিকিউটেবলের অনুলিপিগুলি তৈরি করতে বাধা দেয় - যা তারা পরে অপব্যবহার করতে সক্ষম হতে পারে (উদাহরণস্বরূপ প্রাপ্ত SUID=root on
) get
এবং write
-বিহীনতা না থাকা , একটি ফাইল তাত্ক্ষণিকভাবে মোছা থেকে বাধা দেয়।
মনে মনে, মালিককে read
দু'টিও write
-অনেক- বিশেষায়িত না দেওয়া কিছুটা অস্বাভাবিক, তবে কখনও কখনও owner
কেবল কোনও ফাইল মুছে ফেলা থেকে বিরত রাখা ভাল ধারণা হতে পারে । অবশ্যই owner
- উল্লেখ না করা root
- সর্বদা এই জাতীয় পদক্ষেপগুলি নষ্ট করে দিতে পারে, যদি অন্য উপায়ে না হয়, তবে কেবলমাত্র chmod
ফাইলের অনুমতি দ্বারা ।
owner
কোনও ফাইল মুছে ফেলা থেকে বিরত রাখা ভাল ধারণা হতে পারে ।" - এটি মুছে ফেলার জন্য আপনার কোনও ফাইলের (পড়া, লেখার বা সম্পাদনকারী) কোনও ধরণের অনুমতি প্রয়োজন নেই।
/proc/${PID}/maps
এবং তারপরে স্মৃতি সম্পর্কিত বিভাগগুলি পড়ার মাধ্যমে মেমরি ডাম্পিংয়ের ক্ষেত্রে এমন দৃষ্টিভঙ্গি হতে পারে না /proc/${PID}/mem
? বা এক্সিকিউটেবলের ফাইলটিতে অনুমতিগুলি সীমাবদ্ধ করে মৃত্যুদণ্ড কার্যকর করার সময় স্মৃতিতে তার সম্পর্কিত বিভাগগুলিতে পড়া অনুমতিগুলিও সীমাবদ্ধ করে? (পরেরটি অসম্ভব বলে মনে হচ্ছে, আইএমও।)