What is acl?

download as a pdf file Download PDF
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 <file or directory name> နဲ႔ၾကည္​့လို႔ရပါတယ္​။

ဒီပံုအရဆိုရင္​ 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/direcoty

နဲ႔ျပန္​ဖ်က္​လို႔ရပါတယ္​။က်​ေနာ္​တို႔ပုိၿပီး​ေတာ့႐ွင္​းသြား​ေအာင္​ 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******