File Permission

Linux မှာ Security ဘာလို့ကောင်းတယ်ဆိုသည့်အချက်မှာ ဒီ File Permission ကလည်းပါဝင်တယ်။Linux ကိုကျွမ်းကျွမ်းကျင်ကျင်ဖြစ်ချင်ပြီး Server Administration ပိုင်းတွေပါဆက်သွားချင်တယ်ဆိုရင်တော့ File Permission ကိုနားလည်ထားရမယ်။File Permissionဆိုတာကဘာလဲဆိုရင်တော့ Share လိုက်တဲ့ File/Folder တွေကိုဘယ်သူကိုတော့ဖွင့်ခွင့်ပေးမယ်ဖွင့်ခွင့်မပေးဘူးဆိုပြီးသတ်မှတ်တာပဲဖြစ်တယ်။Linux Permission မှာဆိုရင် DAC နဲ့ MAC ဆိုပြီး Permission နှစ်မျိုးရှိပါတယ်။DAC Permission မှာတော့ Normal Permission နဲ့ Extended (ACL) ဆိုပြီး (၂)မျိုးထပ်ခွဲပါတယ်။MAC Permission SELinux ဆိုပြီးတစ်မျိုးထဲရှိပါတယ်။

DAC (Discretionary Access Control)

DAC Permission ဆိုတာက File တစ် File လောက်ဆောက်လိုက်ပီဆိုပါစို့။ အဲ့ဒီ file ကိုမှ ဘယ်သူကိုတော့ ပေးသုံးမယ်။ဘယ်သူကိုတော့ ပေးမသုံးဘူးဆိုပြီး Permission တွေကန့်သတ်တာပဲ ဖြစ်ပါတယ်။ ကိုယ်တိုင်ဆုံးဖြတ်ပြီး Permission တွေကိုကန့်သတ်လို့ရရင် DAC ဖြစ်ပါတယ်။

MAC (Mandatory Access Control)

MAC ဆိုတာကတော့ ကိုယ်တိုင်ဆုံးဖြတ်လို့မရဘူး။System ကဆုံးဖြတ်ပေးတာဖြစ်တယ်။Folder တစ်ခုရှိသည်ဆိုပါစို့။အဲ့ Folder ကို ဘယ်သူကိုတော့ပေးဝင်မယ်။ ဘယ်သူ့ကိုတော့ပေးမဝင်ဘူးဆိုတာကို system ကသတ်မှတ်တာပဲဖြစ်တယ်။ဒါပေမဲ့ ကျွန်တော်တို့အနေနဲ့ ပြန်ပြင်လို့ရပါတယ်။System ကသတ်မှတ်တာ ဆိုရင် တော့ MAC ပဲဖြစ်ပါတယ်။DAC Permission မှာဆိုရင်တော့ -

· User

· Permission

· File/Folder

User မှာဆိုရင်လဲ owner,group,other ဆိုတာရှိတယ်။Permission ကတော့ read,write,execute ဆိုရယ်ဆိုပြီးတော့ (၃)မျိုးပဲရှိမယ်။ read ဆိုတာကတော့ ဒီ file/folder ကိုဖတ်လို့ပဲရမှာဖြစ်ပြီး , write ကတော့ File/folder တွေကို ပြင်ဆင်ခွင့်ရမှာဖြစ်တယ်။execute permission ကတော့ run လို့ရအောင် ပြုလုပ် ပေးတာ ဖြစ်ပါတယ်။ဥပမာ - script,folder,etc.. Script File ကို execute Permission မပေးထားခဲ့ရင်ထို Script ကို run လို့ရမည်မဟုတ်။ ထိုနည်းတူစွာပဲ Folder ကို execute Permission မပေးထားရင်လဲ အဲ့ folder ဖွင့်ကြည့်လို့ရမှာ မဟုတ်ပါဘူး။

Permission မှာ Owner,Group,Other အတွက်ဆိုပြီး Permission တွေရှိတယ်။ပုံမှာပြထားသည့်အတိုင်း အရှေ့ဆုံးက (rw-) ဆိုသည့် Permission ကတော့ Owner အတွက် Permission ဖြစ်ပြီးတော့ , အလယ်က(r--)ကတော့ Group အတွက် Permission ဖြစ်တယ်။နောက်ဆုံးက (r--)ကတော့ Other အတွက် Permission ဖြစ်ပါသည်။တကယ်လို့ rwx ကိုမှတ်ရတာခက်နေလျှင် Number တွေနဲ့လည်းမှတ်လို့ရတယ်။

Number နဲ့မှတ်ချင်ရင်ဒီအတိုင်းမှတ်နိုင်တယ်။ Computer Binary System နဲ့အလုပ်လုပ်သည့်အတွက် 20 ဆိုပြီးဖြစ်တယ်။ read ရဲ့ 22 ရဲ့ decimal value ကိုဖြည်ရင် 4 ,wirte ရဲ့ 21 ရဲ့ decimal value က 2 , execute ရဲ့ 20 ရဲ့ decimal value ကတော့ 1 ဖြစ်တယ်။

Read = 22 =4

Write = 21 =2

Excute= 20 =1

· r = readable r = 4 rwx=4+2+1=7

· w = writeable w= 2 rw = 4+2 =6

· x = Executable x = 1 rx = 4+1=5

· - = Denied - = 0 wx = 2+1=3

--- = 0

File တစ်ခုကို Permission ပေးချင်ရင်

# chmod 775 file1

Directory တစ်ခုကို Permission ပေးချင်ရင် Directory ထဲက file တွေပါ effect ဖြစ်စေချင်သည့် အတွက် -R (recursive)ဆိုသည့် Option ပါထပ်ထည့်ပေးရပါသည်။

# chmod -R 775 dir1

အပေါ်က Permission ကတော့ user,group,other ကို ပေါင်းပေးတာဖြစ်ပီးတစ်ခုချင်းဆီ Permission ပေးချင်ရင်တော့

  • chmod u+x (or) u-x filename → user

  • chmod g+x (or) g-x filename → group

  • chmod o+x (or) o-x filename → other

  • chmod a+x (or) a-x filename → all

Special Permission

===============

User အတွက် Special Permission ပေးမယ်ဆိုရင်

  • chmod u+s filename

Group အတွက် Special Permission ပေးမယ်ဆိုရင်

  • chmod g+s filename

Other အတွက် Special Permission ပေးမယ်ဆိုရင်

  • chmod o+t filename

Special Permission ပေးလိုက်မယ်ဆိုရင်ဘာတွေထူးခြားလဲဆိုတော့ User နဲ့ပတ်သက် သည့် Special ပေးလိုက်ရင် Program run ရင်အဲ့ဒီ Program/file သည်ဘာဖြစ်လဲဆိုတော့ ဒီ file ကို ပိုင်တာ root user ဒါကို special Permission ပေးလိုက်ရင် အဲ့ဒီ Program သည် တခြား User Account က Run ရင်သူအနေနဲ့ မ run root user အနေနဲ့ပဲ run နေမည်ဖြစ်သည်။ Eg (mkdir test Folder ကိုဆောက်ပါ။ ပီးရင် ls -l test ဆိုပြီး ကြည့်ပါ။ ပီးရင် Permission ကို chmod 750 test လို့ပေးလိုက်ပါ။အာဆိုရင် -rwxr-x--- လို့ပြပါလိမ့်မယ်။အဲ့ဒါကိုမှ User ကို Special Permissionပေးပါမယ်။ chmod u+s test လို့ပေးလိုက်ပါ။ ပီးရင် ls -l test နဲ့ပြန်ကြည့်ပါ။

-rwsr-x--- rwx ကနေx နေရာမှာ s ဝင်ယူသွားပြီး rws ဖြစ်နေပါလိမ့်မည်။ အဲ့နေရာမှာ အရှေ့က User Permission နေရာ rwx မှာ xနေရာမှာလွတ်နေရင် special Permission ပေးသည့်အခါ S အကြီးနဲ့ပြနေပါလိမ့်မည်။ chmod 650 test လို့ပေးလိုက်ပါ။ပြီးရင် Special Permission ပေးပါ။ chmod u+s test ။ -rwSr-x--- လို့ပြနေပါလိမ့်မည်။

Group Special Permission လဲတူတူပါပဲ။အဲ့ဒီ file/program ဘယ်သူကလာ run run အဲ့ဒီ Group ကပိုင်တဲ့ Program အနေနဲ့ run နေမည်ဖြစ်ပါသည်။chmod g+s test

Other ကို Special Permission ပေးထားလျှင်ပေးထားသည့် File မှာ Other User အနေနဲ့ read,write,execute Permission ရနေရင်တောင်မှအဲ့ဖိုင်ကို Other User တွေသည်ဖြတ်လို့ ရမည်မဟုတ်ပါ။Other User ကို Permission အပြည့်ပေးပါ။chmod 777 test ပီးလျှင် Special Permission ပေးပြီးအဲ့ဖိုင်ကိုဖြတ်ကြည့်ပါ။ Permission Denied လို့ပြနေပါလိမ့်မည်။

Change Owner and Group

Change Owner and Group ဆိုတာဘာလဲဆိုရင် e.g. root user က File လေးတစ်ဖိုင်တည်ဆောက်ထားတယ်။သူက ဒီ File ရဲ့ owner ဖြစ်တယ်။အဲ့ဒါကိုမှ ဒီ File ကိုသူက user1 ဆီကိုလွှဲပြောင်းလိုက်ရင် user1 က ဒီ file ရဲ့ owner ဖြစ်သွားမယ်။ဒါကိုဆိုလိုခြင်းဖြစ်ပါတယ်။

Change Owner

# chown root test.txt

Change Owner and Group

# chown root:root test.txt

Change Group

# chgrp IT test.txt

Last updated