উত্তর:
হ্যাঁ, যদিও পাঠ্য অনুমতি ছাড়াই অনুমতি কার্যকর করা অ-বাইনারি ফাইলের অর্থহীন (যদিও এটি চালানোর জন্য আপনাকে একটি স্ক্রিপ্ট পড়তে হবে)। কোনও ডিরেক্টরীতে, পঠন ছাড়াই চালানো মানে আপনি ডিরেক্টরিটি অতিক্রম করতে পারেন তবে এটির তালিকাটি বা এটির সাথে কোনও কিছু নাও তালিকাভুক্ত করতে পারেন। নিম্নলিখিত পথ বিবেচনা করুন:
/home/user/foo/bar
যদি ডিরেক্টরি foo
মোড 0711 (মালিকের জন্য সম্পূর্ণ অনুমতি, শুধুমাত্র গোষ্ঠী এবং বিশ্বের জন্য কার্যকর), যখন ডিরেক্টরি bar
মোড আছে 0755 (মালিকের জন্য পূর্ণ অনুমতি, অন্য সকলের জন্য পড়া এবং চালানো), তারপরে অ্যাকাউন্টগুলি ছাড়া অন্য user
may cd /home/user/foo/bar
এবং যে খুঁজে bar
কোন সাধারণ ডিরেক্টরি হিসাবে আচরণ করে; তবে, যখন cd /home/user/foo
কাজ করবে, ls
এবং অপর্যাপ্ত অনুমতিগুলির কারণে যে ডিরেক্টরিটিতে অন্য কোন কমান্ড ব্যর্থ হবে (যেমন, আপনি সূচীটি তালিকাবদ্ধ করতে ডিরেক্টরিটি পড়তে পারবেন না)।
কোনও ফাইলের পঠন অনুমতি ছাড়াই অনুমতি লিখুন কেবলমাত্র এটি বোঝায়: আপনি ফাইলটিতে লিখতে পারেন তবে আপনি যা লিখেছেন তা পড়তে পারবেন না। এটি এমন একটি ক্ষেত্রে কার্যকর হতে পারে যেখানে একাধিক অ্যাকাউন্টের অধীনে প্রক্রিয়াগুলি একক লগফিল লিখতে পারে, তবে একজন ব্যবহারকারীর একটি প্রক্রিয়া অন্য ব্যবহারকারীর কোনও প্রক্রিয়া থেকে (সম্ভাব্য সংবেদনশীল) লগ এন্ট্রিগুলি পড়তে সক্ষম হবে না।
[benji@laptop ~]$ ./hello
Hello world!
[benji@laptop ~]$ chmod 000 hello #no permissions, start out with a clean slate
[benji@laptop ~]$ chmod +x hello #make it executable
[benji@laptop ~]$ cat hello #try to read it, but can't
cat: hello: Permission denied
[benji@laptop ~]$ ./hello #try to run it, it works!
Hello world!
[benji@laptop ~]$
[benji@laptop ~]$ cat hello.sh
#!/usr/bin/bash
echo 'Hello world!'
[benji@laptop ~]$ chmod 000 hello.sh #no permissions, start out with a clean slate
[benji@laptop ~]$ chmod +x hello.sh #make it executable
[benji@laptop ~]$ cat hello.sh #try to read it; FAIL
cat: hello.sh: Permission denied
[benji@laptop ~]$ ./hello.sh #try to run it, but the shell interpreter (bash) cannot read it; FAIL
/usr/bin/bash: ./hello.sh: Permission denied
[benji@laptop ~]$
ফাইল শেল স্ক্রিপ্ট না থাকলে শুধুমাত্র অনুমতিগুলি কার্যকর করা সম্ভব; একটি শেল স্ক্রিপ্ট শেল ইন্টারপ্রেটার দ্বারা পড়তে হবে (এবং অতএব পঠন অনুমতি প্রয়োজন)। অন্যথা, বাইনারি এক্সিকিউটেবল ফাইলগুলির জন্য, অনুমতিগুলি পড়তে হবে না; শুধু অনুমতি সঞ্চালন।
[benji@laptop ~]$ echo hello >file
[benji@laptop ~]$ chmod 000 file #no permissions, start out with a clean slate
[benji@laptop ~]$ chmod +w file #write-only permissions
[benji@laptop ~]$ cat file #cannot read it
cat: file: Permission denied
[benji@laptop ~]$ echo hello again >file #but *can* write it
তাই হ্যাঁ, লেখার পক্ষে সম্ভব কিন্তু একটি ফাইলের অনুমতিগুলি পড়তে পারে না।
ইউনিক্সে পড়তে, লিখতে, অনুমতিগুলি কার্যকর করতে সম্পূর্ণরূপে স্বাধীন।
ইউনিক্স ব্যবহারকারীর অনুমতিগুলির (ফাইলের মালিকের জন্য), গ্রুপের অনুমতিগুলির (ফাইলের গোষ্ঠীর যে কোনও বিপিডিটির জন্য) এবং অন্যদের মধ্যে পার্থক্য করে। অনুমতি এই ক্রম কঠোরভাবে চেক করা হয়; যেমন, ব্যবহারকারী যদি অ্যাক্সেসের চেষ্টা করে তবে ব্যবহারকারীর অনুমতিগুলি প্রয়োগ হয় এবং অন্য কিছুই পরীক্ষা করা হয় না; ব্যবহারকারী না তবে গ্রুপের সাথে সম্পর্কিত, গ্রুপ অনুমতিগুলি প্রয়োগ করা হয়; উপরের কোনটি না থাকলে, অন্যের অনুমতিগুলি প্রযোজ্য।
অনুমতি দ্বারা দেখানো হয় ls(1)
যেমন rwx
তিনবার (ব্যবহারকারী, গ্রুপ, অন্যদের)। সুতরাং r--
শুধুমাত্র পঠন মানে, rw-
পড়া, লিখুন, এবং --x
শুধুমাত্র চালানো হয়। আদেশ chown(1)
সাধারণত octal সংখ্যা অনুমতি প্রদান করা হয়, তবে আপনি উপরের নোটেশনটি ব্যবহার করতে পারেন, যেমন, chown u+r,g-x,o=rw somefile
মানে "যোগ করুন r
ব্যবহারকারী জন্য, বিয়োগ x
দলের জন্য, সেট r
এবং w
ঠিক অন্যদের জন্য "।
Chmod কাছে যাওয়ার এক উপায় হল chmod গণিত ব্যবহার করা যেখানে পড়ার = 4 লিখুন = 2 কার্যকর = 1। আপনি চান নম্বর পজিশনিং ক্রম = ইউ = ব্যবহারকারী জি = গ্রুপ ও = অন্যদের মধ্যে পজিশনিং কমান্ড 'chmod UGO' অনুমতি সেট করবে।
তুমি যদি চাও ব্যবহারকারী পূর্ণ অনুমতি আছে পড়তে হবে (4) + লিখুন (2) + চালানো (1) = 7
তুমি যদি চাও গ্রুপ পড়তে এবং চালানো হবে পড়তে হবে (4) + execute (1) = 5
তুমি যদি চাও অন্যান্য কোন এক্সেস আছে 0 এটি হবে
এই অনুমতিগুলি সেট করার কমান্ডটি হ'ল: chmod 750 ফাইল