Wednesday, April 30, 2014

Managing ACL Permission

                

                အခုပြောမယ့်အကြောင်းကတော့ Linux ရဲ့ Advanced Permission ဖြစ်တဲ့ ACL အကြောင်းဖြစ်ပါတယ်။ ပြောချင် သည်မှာ Linux မှာ Standard Permission လိုမျိုး သတ်မှတ် နိုင်တဲ့ အပြင် အခု ပြောမယ့် ACL နှင့်လည်း advance level permission သတ်မှတ်နိုင်ပါတယ်။  ဒါဆိုရင် အရင်ဆုံး standard permission အလုပ်လုပ်ပုံသည် ဖိုင်တစ်ဖိုင်အတွက် သူရဲ့ permission သတ်မှတ်ပုံမှာ owner အတွက် ရှိမယ် group အတွက်ရှိမယ် နောက် other တစ်ခြား usersများအတွက်ရှိမယ် ဆိုပြီး Standard မှာ သတ်မှတ်ပါတယ်။ example အနေနှင့် Owner ကတော့ full permission အပြည့်ရပြီး group level မှာ members ဖြစ်နေတဲ့ သူတွေကို read access ပဲ ပေးပြီး နောက်တစ်ခြားusers တွေ other users များကို access denied လုံးဝကြည့်ရှုခွင့် ပြင်ဆင်ခွင့် မပေးထားလျှင် Standard Permission အရ other users တွေမှာ ကြည့်ရှု ခွင့် မရှိပါ သို့သော် ထိုထဲမှာ မှ mgmg ဆိုသော user တစ်ယောက်သည် ownerလည်းမဟုတ် group member လဲ မဟုတ်ပေမယ့် ချွင်းချက်အနေနဲ့ သူ့ကို full permission ပေးချင်တယ် ဆိုရင် အခု ပြောမယ့် advanced permission သတ်မှတ်ပုံ ACL နှင့် အသုံးပြုရမှာ ဖြစ်ပါတယ်။ တစ်နည်းအားဖြင့်  Same Group ထဲ မှာ ရောက်နေသော်လည်း ထို user တစ်ယောက်ကိုတော့ ဖြင့် သတ်သတ် specific permission ပေးချင် တယ်ဆိုရင် သို့မဟုတ် တစ်ခြား သတ်သတ် user တစ်ယောက်ကိုတော့ ဖြင့် specific permission ပေးချင်တယ် ဆိုရင် ထိုကဲ့သို့ ACL ကို အသုံးပြုပါတယ်။ အရင်ဆုံး အနေနဲ့ ပြောချင်သည်မှာ file/directory ပေါ်မှာ ACL သတ်မှတ်ထား ပြီး ဆိုလျှင်လျှင် ls command ဖြင့် ကြည့်ပါက permission line ၏ နောက်ဆုံးတွင် "+” sign ပေါ်နေမည်ဖြစ်ပါသည်။ အောက်ပုံတွင်ကြည့်ပါ။   






                ACL ကိုအသုံးပြုရာတွင် command နှစ်မျိုးဖြင့်အသုံးပြုပါတယ်။ File/Directoryတစ်ခုပေါ်မှာ acl ၏ permission ကိုကြည့်ချင်တယ်ဆိုရင် "getfacl” commandကိုအသုံးပြုပြီး acl permission သတ်မှတ် ချင်လျှင် "setfacl” ဆိုတဲ့ command ကို အသုံးပြုပါတယ်။အောက်ကပုံတွင်ပြထားပါသည်။


              နောက်တစ်ခုကတော့ "setfacl command” ကို အသုံးပြုပြီး ACL Permission တည်ဆောက်မှာ ဖြစ်ပါတယ်။ ပုံထဲမှာ user ဖြစ်တဲ့ "yan” ကို ပုံမှန် user ဖြစ်တဲ့ "root” နည်းတူ permission ကို "rwx” full access ပေးထားတာ ဖြစ်ပါတယ်။ ဒါဆိုရင် ထို ဖိုင်ကို owner ဖြစ်တဲ့ root အပြင် "yan” user သည်လည်း full access အသုံးပြု နိုင်မှာဖြစ်ပါတယ်။ နောက်ထပ် အနေနဲ့ user “aung” ကို permission deny ဘာမှ မပေးထားတဲ့ ပုံစံ နောက်ထပ် တစ်ပုံမှာ သတ်မှတ် ပြထားပါတယ်။




                       နောက်တစ်ဆင့် အနေနဲ့ကတော့ အခု သတ်မှတ်လိုက်တဲ့ users တွေနဲ့ စမ်းပြမှာ ဖြစ်ပါတယ်။ အရင်ဆုံး user “aung” နှင့် စမ်းရာ သူ့ကို စကတည်းက ဘာမှမပေးထားတဲ့အတွက် "cat command” နှင့် ကြည့်လျှင် "access denied” ဖြစ်နေသည်ကို တွေ့မှာ ဖြစ်ပါတယ်။ user “yan” နှင့်ကြည့်လျှင် thefile.txt ကို permission ပေးထားသောကြောင့် ကြည့်ခွင့်ရှိမှာ ဖြစ်ပါတယ်။







                  နောက်တစ်ခုအနေနှင့် ပြောချင်သည်မှာ Mask အကြောင်းဖြစ်ပါတယ်။ သဘောကတော့ acl permission သတ်မှတ်ရာတွင် လည်း ထို specific user ကို ဘယ်လောက်ပဲ permission full access ပေးသော်လည်း နောက်ဆုံး ထို user လုပ်နိုင်သည်မှာ "read only” ပဲ  ဖြစ်နေစေချင်လျှင် ပြောချင်သည်မှာ ထို file ကို မည့်သည့် user ကို acl ဖြင့် full permission ပေးပေး နောက်ဆုံး mask ဖြင့် ထိန်းချုပ်ထားလျှင် mask တွင် ပေးထားသည့် acl permission သည်သာ effect ဖြစ်မည်ကို ဆိုလိုပါတယ်။ အောက်ကပုံတွင် mask ၏ default permission for acl ကို ပြထားပါတယ်။ default permission ကတော့ full permission  ဖြစ်ပါတယ်။

               အခု acl ၏ mask default permission ကို ပြင်မှာဖြစ်ပါတယ်။ အောက်ကပုံမှာ ကြည့်ပါ။ ပုံထဲမှာ setfacl command နဲ့ပဲ အသုံးပြုထားပြီး mask ၏ permission ကို "r--” read-only ပဲပေးထားတာဖြစ်ပါတယ်။ ထိုအတွက်ကြောင့် full permission ပဲ ဖြစ်စေနောက်ဆုံး read-only နဲ့ပဲ effect ဖြစ်မှာ ဖြစ်ပါတယ်။ ပုံတွင် yan user သည် full permission ဖြစ်သော်လည်း ဘေးတွင် effective permission မှာ read-only ဖြစ်သည်ကို ပြထားပါတယ်။  

 


             အခုပုံထဲမှာ user “yan” ဖြင့် စမ်းကြည့်ထားတာ ဖြစ်ပါတယ်။ Read-only ပဲရသောကြောင့် fileကိုဖတ်လို့ ရပြီး delete လုပ်သည့်အခါ access denied ဖြစ်နေတာကို တွေ့ရမှာ ဖြစ်ပါတယ်။


                နောက်ဆုံးတစ်ခုအနေနဲ့က အခုသတ်မှတ်ထားတဲ့ acl permission တွေကို default အတိုင်း ပြန်ထား ခြင်းဖြစ်ပါတယ်။ ကျွန်တော်တို့ "setfacl command” နဲ့ပဲ အသုံးပြုမှာ ဖြစ်ပါတယ်။ အောက်ကပုံမှာ ပြထားသည့်အတိုင်း "setfacl -b” နှင့်အသုံးပြုလိုက်သည့်အခါ modify ပြုလုပ်ထားတဲ့ acl permission တွေ remove ဖြစ်ပြီး ပုံမှန် default acl permission ကို ပြန်ရောက်သွားပါတယ်။
            အခု လုပ်ပြခဲ့တဲ့ tutorial အပြင် ACL permission ကို users တွေ အပြင် group တွေ အပေါ်မှာ လဲ သတ်မှတ်နိုင်ပါတယ်။ အခု နောက်ပိုင်းမှာဆိုလျှင် nfs4 မှာလည်း acl permission ကိုသတ်မှတ်နိုင်ပြီး ဖြစ်ပါတယ်။




Share:

0 comments:

Post a Comment