প্রথম কমান্ডটি পূর্ব-বিদ্যমান ফাইল / ডিরেক্টরিগুলির অনুমতি পরিবর্তন করবে। -d
দ্বিতীয় কমান্ড এ ডিফল্ট কোনো ডিরেক্টরি, যেটা ঘুরে ফিরে এই ডিরেক্টরির মধ্যে কোন ফাইলের জন্য ACLs একটি ডিফল্ট সেট প্রদান করবে এগিয়ে যাচ্ছে অনুমতি স্থাপন গুরুত্বপূর্ণ।
দ্রষ্টব্য: উভয় ক্ষেত্রে কমান্ডগুলি পুনরাবৃত্তভাবে -R
স্যুইচটির মাধ্যমে চলবে ।
সংক্রান্ত -d
সুইচ থেকে setfacl
মানুষ পৃষ্ঠা:
-d, --default
All operations apply to the Default ACL. Regular ACL entries in the
input set are promoted to Default ACL entries. Default ACL entries
in the input set are discarded. (A warning is issued if that happens).
এই অংশটি এটিকে মোটামুটি ভালভাবে ব্যাখ্যা করেছে:
দুটি ধরণের এসিএল রয়েছে: এসিএল এবং ডিফল্ট এসিএলগুলি অ্যাক্সেস করুন। একটি অ্যাক্সেস এসিএল হ'ল নির্দিষ্ট ফাইল বা ডিরেক্টরিগুলির অ্যাক্সেস নিয়ন্ত্রণ তালিকা। একটি ডিফল্ট এসিএল কেবল একটি ডিরেক্টরিতে যুক্ত হতে পারে; ডিরেক্টরিতে থাকা কোনও ফাইলের যদি অ্যাক্সেস এসিএল না থাকে, তবে এটি ডিরেক্টরিতে ডিফল্ট এসিএল এর নিয়ম ব্যবহার করে। ডিফল্ট এসিএলগুলি .চ্ছিক।
সূত্র: 8.2। অ্যাক্সেস এসিএল সেট করা হচ্ছে ।
উদাহরণ
বলুন আমার এই ডিরেক্টরি কাঠামো আছে।
$ tree
.
|-- dir1
| |-- dirA
| | `-- file1
| `-- fileA
`-- file1
2 directories, 3 files
এখন setfacl
আপনার প্রশ্নের প্রথম কমান্ড ব্যবহার করে অনুমতিগুলি সেট করা যাক :
$ setfacl -R -m u:saml:rwx -m u:samtest:rwX .
যার ফলাফল নিম্নলিখিত:
$ getfacl dir1/ file1
# file: dir1
# owner: saml
# group: saml
user::rwx
user:saml:rwx
user:samtest:rwx
group::rwx
mask::rwx
other::r-x
# file: file1
# owner: saml
# group: saml
user::rw-
user:saml:rwx
user:samtest:rwx
group::rw-
mask::rwx
other::r--
-dR
কমান্ডটি এখানে চালানো ছাড়া নতুন ডিরেক্টরিগুলি আপনার এসিএল দ্বারা আচ্ছাদিত হবে না:
$ mkdir dir2
$ getfacl dir2
# file: dir2
# owner: saml
# group: saml
user::rwx
group::rwx
other::r-x
তবে আমরা যদি এই ডিরেক্টরিটি সরিয়ে setfacl -dR ...
ফেলি এবং কমান্ডটি চালিত করি এবং উপরে এই ক্রিয়াকলাপটি পুনরাবৃত্তি করুন:
$ rmdir dir2
$ setfacl -dR -m u:saml:rwx -m u:samtest:rwX .
অনুমতিগুলি এখন অন্যরকম দেখাচ্ছে:
$ getfacl dir1/ file1
# file: dir1/
# owner: saml
# group: saml
user::rwx
user:saml:rwx
user:samtest:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:user:saml:rwx
default:user:samtest:rwx
default:group::rwx
default:mask::rwx
default:other::r-x
# file: file1
# owner: saml
# group: saml
user::rw-
user:saml:rwx
user:samtest:rwx
group::rw-
mask::rwx
other::r--
এবং এখন আমাদের নতুন তৈরি ডিরেক্টরিটি এই "ডিফল্ট" অনুমতিগুলি গ্রহণ করবে:
$ mkdir dir2
$ getfacl dir2
# file: dir2
# owner: saml
# group: saml
user::rwx
user:saml:rwx
user:samtest:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:user:saml:rwx
default:user:samtest:rwx
default:group::rwx
default:mask::rwx
default:other::r-x
এই অনুমতিগুলি স্থানে dir2
রাখলে এখন ফাইলগুলির মধ্যেও এই অনুমতিগুলি কার্যকর করা হবে dir2
:
$ touch dir2/fileA
$ getfacl dir2/fileA
# file: dir2/fileA
# owner: saml
# group: saml
user::rw-
user:saml:rwx #effective:rw-
user:samtest:rwx #effective:rw-
group::rwx #effective:rw-
mask::rw-
other::r--
app/cache
একটি ডিরেক্টরি আছে যার মধ্যে একটি ডিরেক্টরি বলা আছেdev
, প্রথম কমান্ডটি প্রয়োগ করা হবে, তবে দ্বিতীয়টি নয়? এবং যদি পরে অন্য ডিরেক্টরি যুক্ত করা হয় (যেমনprod
), দ্বিতীয় কমান্ড অনুমতিগুলি সেট করবে? যদি এটি না হয় তবে আমার দ্বিতীয় কমান্ডটি এড়িয়ে যেতে পারা উচিত?