শেল স্ক্রিপ্টগুলির সম্পাদন করার জন্য পঠনের অনুমতি প্রয়োজন তবে বাইনারি ফাইলগুলি এটি করে না:
$ cat hello.cpp
#include<iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}
$ g++ -o hello hello.cpp
$ chmod 100 hello
$ ./hello
Hello, world!
$ file hello
hello: executable, regular file, no read permission
কোনও ফাইলের বিষয়বস্তু প্রদর্শন করা এবং সেগুলি সম্পাদন করা দুটি ভিন্ন জিনিস। শেল স্ক্রিপ্টগুলির সাথে, এই জিনিসগুলি সম্পর্কিত কারণ আপনি সরলকরণটি ক্ষমা করে দিলে এগুলি একটি নতুন শেলের (বা বর্তমানের) মধ্যে "পড়ার" দ্বারা "কার্যকর করা" হয়। এজন্য আপনার এগুলি পড়তে সক্ষম হওয়া দরকার। বাইনারিরা সেই প্রক্রিয়াটি ব্যবহার করে না।
ডিরেক্টরিগুলির জন্য, নির্বাহের অনুমতিটি কিছুটা আলাদা; তার মানে আপনি ফাইল জিনিস করতে পারেন মধ্যে ডিরেক্টরিটি (যেমন পড়া বা তাদের চালানো)। সুতরাং আসুন আমরা বলি /tools
যে আপনার কাছে সরঞ্জামগুলির একটি সেট রয়েছে যাতে আপনি চান যে লোকেরা ব্যবহার করতে সক্ষম হবেন, তবে কেবল তারা যদি সেগুলি সম্পর্কে জানেন তবে। chmod 711 /tools
। তারপরে কার্যনির্বাহী জিনিসগুলি /tools
স্পষ্টভাবে চালানো যেতে পারে (যেমন /tools/mytool
) তবে ls /tools/
তা অস্বীকার করা হবে। একইভাবে, দস্তাবেজগুলি সংরক্ষণ করা /private-docs
যেতে পারে যা কেবলমাত্র ফাইলের নাম জানা থাকলে এবং পড়া যায়।