Access Control List (ACL)

Extended (ACL) Permission ကတော့ DAC Permission ထဲမှာရှိသည့် နောက်ထပ် Permission တစ်ခုဖြစ်ပါသည်။သူ့ကိုဘယ်လိုနေရာတွေမှာအသုံးပြုလဲဆိုရင် ဥပမာ- office ဆိုသည့် Group ရှိပြီးတော့ user1 နဲ့ user2 ဟာဆိုရင် office group ထဲပါသည့် User တွေပဲဆိုပါစို့။အဲ့ဒီ office ဆိုသည့် group ဟာ dir1ဆိုသည့် Directory ကို rwx နဲ့ access လုပ်ခွင့်ရထားတယ်ပဲထားပါတော့။ဒါဆိုအဲ့ဒီ office ဆိုသည့် Group ထဲမှာပါသည့် user အားလုံးဟာ dir1 ကို rwx နဲ့ access လုပ်ခွင့်ရပြီပဲဖြစ်ပါတယ် ။အဲ့ဒီအခြေအနေမှာ ကျွန်တော်တို့က ဘာ ဆက်လုပ်မလဲဆိုရင် user1 ကိုပဲ access လုပ်ခွင့်ပေးမယ်။ user2 ကိုတော့ ပိတ်ထားချင်တယ်ပေါ့။ ဒီလိုမျိုး သတ်မှတ်ချင်တယ်ဆိုရင်အပေါ်က Normal Permission တွေနဲ့သတ်မှတ်လို့မရတော့ပဲ ACL ကိုအသုံးပြုရပါမယ်။ e.g . (Lab) user1 နဲ့ user2 ဆိုပြီး user account ၂ခုဆောက်လိုက်ပါ။နောက်ပြီးတော့ office ဆိုသည့် group တစ်ခုဆောက်ပါ။ ပီးရင်အပေါ်ကဆောက်ခဲ့သည့် user1 နဲ့ user2 ကို office group ထဲသို့ထည့်ပါ။ပြီးရင်တော့ dir1 နဲ့ dir2 ဆိုပြီး directory လေးတွေဆောက်လိုက်ပါ။ File/Folder တစ်ခုဟာ ACL Permission သတ်မှတ်ထားလားသိချင်ရင်တော့ ls -ld နဲကြည့်လိုက်ရင် Permission အဆုံးမှာ + ဆိုသည့်သင်္ကေတ ပါတယ်ဆိုရင် ACL အသုံးပြုထားတယ်လို့သိနိုင်ပါတယ်။ဥပမာ dir1 ကို ACL အသုံးပြုထားမလား ကြည့်မယ် ဆိုရင်တော့ ls -ld dir1 ဆိုသည့် Command ဖြင့်ကြည့်နိုင်ပါသည်။

ACL Permission ကိုအသုံးပြုရာတွင် getfacl နဲ့ setfacl ဆိုသည့် Command နှစ်ခုကိုအသုံးပြု ပါတယ်။အဲ့ထဲမှာမှ getfacl ကိုတော့ ACL သတ်မှတ်ထားတွေကို ပြန်ကြည့်သည့်နေရာမှာသုံးပြီး setfacl ကတော့ ACL သတ်မှတ်ပေးသည့်နေရာ,ပြန်ဖျက်သည့်နေရာမှာ အသုံးပြုပါတယ်။

(1) To add permission for user

user1 ကို dir1 အတွက် rwx ပေးချင်သည်ဆိုပါစို့။ အသုံးပြုရမည့် Command က

# setfacl -m “u:user:permissions” /path/to/file

# setfacl -m u:user1:rwx dir1 ပဲဖြစ်ပါတယ်။

(2) To add permission for a group

နောက်ထပ် office ဆိုသည့် group ကို dir1 အတွက် rwx ပေးချင်သည်ဆိုရင် Command က

# setfacl -m “g:group:permissions” /path/to/file

# setfacl -m g:office:rwx dir1ပဲဖြစ်ပါသည်။

(3) Do not Access Permission user for a group

နောက်ထပ် user2 ကို dir1 ကို access လုပ်လို့မရအောင်ပိတ်ချင်ရင်

# setfacl -m “u:user:permissions” /path/to/file

# setfacl -m u:user2:--- dir1 ပဲဖြစ်ပါတယ်။

(4) To make Default Permission

User နဲ့ Group တွေကို default အဖြစ်သတ်မှတ်ချင်တယ်ဆိုရင်တော့

# setfacl -m d:u:user1:rwx dir1

# setfacl -m d:g:office:rwx dir1 ပဲဖြစ်ပါတယ်။

(5) To Delete Default Permission

ACL Permissionထဲက default ပေးထားသည့် userနဲ့ group တွေကိုပဲဖျက်ထုတ်ချင်တယ်ဆိုရင်တော့ # setfacl -k dir1 ပဲဖြစ်ပါတယ်။

(6) To add Mask Option For a Group

ACL Permission တွေကို mask ဆိုသည့် option နဲ့ထပ်ပီးကန့်သတ်ထားချင်တယ်ဆိုရင်ဘယ် user ကိုဘာ permission ပဲပေးထားထား mask (m) ကိုအသုံးပြုပြီး r ဆိုပြီးကန့်သတ်လိုက်မယ်ဆိုရင် အဲ့ဒီ file/directory ကို readonly ပဲလုပ်ခွင့်ရနေမှာဖြစ်ပါတယ်။Command ကတော့

# setfacl -m “m::permissions” /path/to/file

# setfacl -m m::r dir1 ပဲဖြစ်ပါတယ်။

(7) To User Permission Delete

နောက်ထပ် user1 ပတ်သက်တဲ့ permission ကိုဖျက်ထုတ်မယ်ဆိုရင်တော့

# setfacl -x “u:user” /path/to/file

# setfacl -x u:user1 dir1 ပဲဖြစ်ပါသည်။

(8) To Group Permission Delete

Office Groupကိုပေးထားသည့် permission ကိုဖျက်ချင်တယ်ဆိုရင်

# setfacl -x “g:group” /path/to/file

# setfacl -x g:office dir1 ပဲဖြစ်ပါတယ်။

(9) To Delete ACL Permission

ACL အသုံးပြုထားသည့် Permission အာလုံးကိုဖျက်ထုတ်မယ်ဆိုရင်

# setfacl -b dir1 ကိုပြီးသုံးရပါမယ်။

(10) To Copy Permission

dir1 ကို သတ်မှတ်ထားသည့် Permission ကို Copy လုပ်ချင်တယ်ဆိုရင်တော့ # getfacl dir1 | setfacl --set-file=- dir2 ပဲဖြစ်ပါတယ်။

Last updated