Skip to content
Guide

What is acl?

Wai Yan Win Htain

Contributor

2 min read

Linux မှာရှိတဲ့ file တွေ directories တွေကို ACL(Access Control Lists)ကိုအသုံးပြုပြီး secure ဖြစ်အောင်ဘယ်လိုလုပ်မလဲ။

ပုံမှန်သုံးနေကျ read,write,execute permission တွေကို chmod, chown နဲ့တွဲသုံးတာက အလုပ်တော့ဖြစ်ပေမဲ့ file တစ်ခုထဲကို user အများကြီးအတွက် Permission တွေပေးချင်တဲ့အခါမှာအဲ့ဒါတွေနဲ့အလုပ်မဖြစ်တော့ဘူးဗျ။ ဒါပေမဲ့ acl ကတော့ကောင်းကောင်းလုပ်ပေးနိုင်ပါတယ်။ acl ကိုအသုံးပြုမယ်ဆိုရင်တော့ သူ့အတွက်လိုအပ်တဲ့ packages တွေကို

sudo apt-get install nfs4-acl-tools acl

ဆိုပြီးအရင် install လုပ်ပေးရပါမယ်။ acl မှာ default acl နဲ့ access acl ဆိုပြီးနှစ်မျိုးရှိပါတယ်။Default acl ကတော့ directory level မှာပဲအသုံးပြုလို့ရပါတယ်။ default acl permission ပေးထားတဲ့ directory(example Musics) ထဲမှာ file ဒါမှမဟုတ် directory တွေထပ်ဆောက်မယ်ဆိုရင်
parent directory(Musics) ရဲ့ permission အတိုင်း Sub directory , file တွေကိုသက်ရောက်မှုရှိမှာပါ။ Access acl ကတော့ directory ရော file ပေါ်မှာပါအသုံးပြုလို့ရပါတယ်။ File or Directory တွေမှာ acl permission ရှိမရှိကို getfacl နဲ့ကြည့်လို့ရပါတယ်။

ဒီပုံအရဆိုရင် Documents ဆိုတဲ့ directory မှာရှိတဲ့ acl permission ကိုမြင်ရမှာပါ။ ဒီ directory မှာ default acl မရှိသေးပါဘူး။အဲ့တော့ကျနော်တို့ default acl ထားကြည့်ရအောင်။

ဒီပုံမှာဆိုရင် Documents အတွက် default acl ကိုသတ်မှတ်လိုက်တာပါ။ အောက်က default အရဆိုရင် Document ထဲမှာ file တစ်ခု create လုပ်မယ်ဆိုရင် create လုပ်တဲ့ user က rwx, full permission ကိုရရှိမှာဖြစ်ပြီး Group နဲ့ other ကတော့ read နဲ့ execute permission ကိုရမှာဖြစ်ပါတယ်။
ပေးပြီးသား acl permission တွေကိုပြန်ဖျက်ချင်ရင်တော့

setfacl -b file/directory         # removing all ACL from file/directory

နဲ့ပြန်ဖျက်လို့ရပါတယ်။ကျနော်တို့ပိုပြီးတော့ရှင်းသွားအောင် example scenario လေးတစ်ခုနဲ့ကြည့်ကြည့်ရအောင်။

Stpe1:   ပထမဆုံး user1 နဲ့ user2 ဆိုတဲ့ user နှစ်ယောက်ကို create လုပ်မယ်။

Step2:   acl ဆိုတဲ့ group တစ်ခုလုပ်ပြီးတော့ user1 နဲ့ user2 ကို acl group ထဲထည့်မယ်။

Step3:   user1 ဆိုတဲ့ directory တစ်ခု create လုပ်ပြီး owner ကို user1 အဖြစ်ထားမယ်။

Step4:   user1 အနေနဲ့ login ဝင်ပြီး user1 ဆိုတဲ့ directory ထဲမှာ example ဆိုတဲ့ directory တစ်ခု create လုပ်မယ်။

Step5:   အခု acl ကိုသုံးပြီးတော့ example ဆိုတဲ့ directory မှာ user1 က rwx permissions, user2 က read only permission နဲ့ other မှာ no permission ထားပြီးစမ်းကြည့်ရအောင်။

-m က ရှိပြီးသား permission ကို modify လုပ်ဖို့အတွက်အသုံးပြုတာပါ။

Step7:   အခုကျနော်တို့ user2 အနေနဲ့ login ဝင်ပြီးတော့ ပေးထားတဲ့ permission မှန်၊ မမှန် ကြည့်ည့်ရအောင်။

user2 အနေနဲ့ example ထဲကိုဝင်ကြည့်တဲ့အခါမှာ Permission denied ဖြစ်နေတာကိုမြင်ရမှာပါ။ ဘာလို့လဲဆိုတော့ ကျနော်တု့ိ user2 အတွက်ကို read permission ဘဲထားခဲ့တာဖြစ်တဲ့အတွက် user2 က example ထဲကိုဝင်ကြည်တဲ့အခါမှာ ဝင်လို့မရတာဖြစ်ပါတယ်။( directory ထဲကိုဝင်တဲ့အခါမှာ execute permission ရှိမှဝင်လို့ရတဲ့အတွက်ပါ။) အဲ့တော့ user2 အတွက်ကို execute permission ပေးကြည့်ရအောင်။

user1@admin:/home/server/user1$ setfacl -m u:user2:r-x example/

example directory ထဲကိုဝင်လို့ရသွားပါပြီ။ read နဲ့ execute ပဲပေးထားတဲ့အတွက် write ကိုရမရစမ်းကြည့်ရအောင်။

permission denied!!!!

Reference Link

ACL’s Documentation

******Thanks******

Ubuntu Server Hardening (Part-1)

Ubuntu ကိုသုံးနေတဲ့ User အသစ်တွေ (အသစ်တွေဆိုတာက Desktop Version ကိုသုံးနေတာကြာပြီ။ သို့ပေမယ့် Server ပေါ်ကိုအခုမှစတင်အသုံးပြုမယ့်လူတွေ) ကိုဒီနေ့တွေ့…

Ethan Kurt

7 min read

Two-Factor Authentication အသုံးပြု၍ Ubuntu Linux လုံခြုံရေး ဘယ်လိုမြှင့်တင်မလဲ။

ယနေ့ခေတ်မှာ သတင်းအချက်အလက်လုံခြုံရေး ( Information Security ) သည် အလွန်အရေးကြီးသည့်အခန်းကဏ္ဍကနေပါဝင်နေပါတယ်။ ထို့အတူ ဟက်ကာတွေနဲ့ Security ဂုရုကြီးတွေလဲ နေ့စဉ်အမြဲ…

Ye Minn

2 min read

LINUX SysAdmin – {Linux System Administration Course}

Ubuntu Myanmar LoCo Team မှ Linux System Administration (Module 2) ကို 25/July/2015 တွင်စတင်ဖွင့်လှစ်မည်ဖြစ်သည်။ ယခု Module သည်လည်း 1st Module ကဲ့သို့ Money Back System…

Ko Ko Ye

3 min read