Explaining Linux Special Permission(SGID,SUID,Sticky bit)

317

Explaing Special Linux Permission (SUID,SGID ,Sticky Bit)

အခုပြောမယ့်အကြောင်းအရာကတော့ special linux permission တွေ ဖြစ်တဲ့ suid, sgid နှင့် sticky bitတို့ ပဲ ဖြစ်ပါတယ် ။ အဲတာတွေ မပြောခင်မှာ အခြေခံ permission သုံးခုအကြောင်းကို သိဖို့လိုအပ်ပါတယ်။ အဲတာတွေကတော့ read,write , execute တို့ဖြစ်ပါတယ်။ permission ပေးနိုင်တဲ့ file နှင့် directories တွေ ကတော့ user(owner),other,group ဆိုပြီးတော့owner types သုံးမျိုးနှင့်လာပါတယ်။ chmod ဆိုတဲ့ command ကိုအသုံးပြုပြီး permission တွေ ပြောင်း လဲ နိုင်မှာဖြစ်ပါတယ် ။

SUID (Super User ID)

SUID ဆိုတာက Super User ID ကို ဆို လိုခြင်းဖြစ်ပါတယ် ။ linux system တွေ မှာ root user က super user ဖြစ်ပါတယ် ။ super user က system ရဲ့ administrative tasks တွေ အကုန် အလုပ်လုပ်နိုင်မှာဖြစ်ပါတယ်။ normal user တွေ က လည်း အချို့သော administrative tasks တွေ ကို လုပ်ဆောင် နိုင် တာ တွေ့ ရ ပါ တယ် ။ ဥပမာ user ရဲ့ password ကို reset လုပ်တာ က administrative task ဖြစ်ပါတယ် ။ အဲတာကို normal user တွေ က လုပ် နိုင် တာ တွေ့ ရ ပါ တယ် ။ password ကို reset လုပ်တာ က root user တွေ ကသာ ပြင် နိုင်တဲ/etc/passwd,/etc/shadow တို့ ကို သွား ပြင် ခြင်း ဖြစ်ပါတယ် ။ နောက် ဥပမာ တစ်ခု ကတော့ normal user တွေ က ping command ကို အသုံးပြု ပြီး network connectivity ကို check လုပ် နိုင် ခြင်း ဖြစ်ပါတယ် ။ အခု လို လုပ် ဆောင် နိုင် ခြင်း က အဲ binary file သို့မဟုတ် script တွေ ကို root user ကနေ chmod command ကို အသုံးပြုပြီး SUID permission ပေး ထားသောကြောင့်ဖြစ် ပါ တယ် ။ binary file သို့မဟုတ် script file ကို SUID permission ပေး ထား တယ် ဆို တာ က အဲ binary file သို့မဟုတ် script file ကို မည် သည့် logged in user မဆို owner အနေ နဲ့ execute လုပ် နိုင် တာ ကိုဆို လို ခြင်း ဖြစ် ပါ တယ် ။ SUID permission ကို alphabet အနေ ဖြင့် s ဖြင့် ဖော် ပြ ပြီး number အနေ ဖြင့် ၄ ဖြင့် ဖော် ပြ ပါ တယ် ။ အောက် ဖော်ပြပါ ပုံ မှာ user1 က ping command ကို အလုပ် လုပ် နိုင် ပါတယ်။

အခုလို အလုပ်လုပ်ခြင်း က ping binary file ကို SUID permission ပေးထားသောကြောင့် ဖြစ်ပါတယ်။ SUID permission ပေး ထားကြောင်း ကို သိ ရှိ နိုင် ရန် အဲ ping binary file ကို ls -l command ဖြင့် ကြည့်နိုင် ပါ တယ် ။ ping binary file ရဲ့ owner က root ဖြစ် ပါတယ် ။ အဲ file ကို SUID permission ပေး ထားခြင်း ဖြင့် normal user က ping binary file ရဲ့ owner ဖြစ် တဲ့ root အနေ နှင့် execute လုပ် နိုင် မှာ ဖြစ်ပါ တယ် ။

SUID permission ကို alphabet အနေဖြင့် ပေးထားခြင်း ဖြစ်ပါတယ် ။

SUID permission ကို number အနေဖြင့် ပေးထားခြင်း ဖြစ်ပါတယ် ။

SUID pemission ကို alphabet အနေ ဖြင့် ဖြုတ်ထားခြင်း ဖြစ်ပါတယ် ။

SUID permission ကို nubmer အနေ ဖြင့် ဖြုတ်ထားခြင်း ဖြစ်ပါတယ် ။

SUID permission ကို ဖြုတ် လိုက် ပါ က ping command ကို normal user က အသုံးမပြု နိုင် တော့ ပါ ဘူး ။

မှတ်ချက်။ ။

SUID permission ကို ပေး တဲ့ အခါ မှာ sys admin တွေ အနေ နှင့် သတိ ပြု သင့်ပါတယ်။ SUID permission ကို မလို အပ် သော file တွေ ကို ပေး မိ ရာ မှ shell escape ကနေ privilege escalation ရ သည် အထိ vulnerability ဖြစ် နိုင်တဲ့ အတွက် အထူးသတိပြု သင့်ပါ တယ်။

SGID (Super Group ID )

SGID က Super Group ID ဖြစ် ပါ တယ်။ SGID က SUID နှင့် တော် တော် လေး တူပါတယ်။ SUID permission က user တစ် ယောက် အပေါ် ပဲ သက် ရောက် ပြီး SGID က multiple users အပေါ် ကို သက် ရောက် မှာ ဖြစ်ပါတယ်။ SGID permission ကို alphabet အနေ နဲ့ s ဖြင့် ဖော်ပြပြီး number အနေ နဲ့ 2 ဖြင့် ဖော်ပြမှာ ဖြစ် ပါ တယ်။ ဥပမာတစ်ခု နဲ့ ပြ ပါမယ်။ admins ဆို တဲ့ group မှာ member1 , member2 ရှိပါမယ်။

အခု database ဆိုတဲ့ directory တစ်ခု ဆောက်လုပ်ပြီး user ကို rwx, group ကို rwx , others ကို rx ဆို ပြီး ပေး ထား ပါမယ်။

ပီး လျင် database directory ရဲ့ owner ကို root က နေ admins သို့ chgrp command သုံးပြီး ပြောင်း ပါ မယ်။

အခု database ဆို တဲ့ directory ကို SGID permission ကို chmod command အသုံးပြုပြီး ပေး ပါမယ်။

 

ပြီးတော့ member1 အနေ နဲ့ file1 ဆိုပြီး file တစ်ခု ဆောက် ခဲ့ပါမယ်။

 

အခု member2 user အနေ နဲ့ ဝင် ပြီး file1ကို edit လုပ် ကြည့် ပါမယ်။

member1 user က တည်ဆောက် ထား သော file1 ကို member2 user က edit လုပ်နိုင် ကြောင်း တွေ့ ရ ပါ တယ်။ အကြောင်း မှာmember2 user သည် SGID permission ပေးထား သော admins ရဲ့ group member ဖြစ် သော ကြောင့်ဖြစ်ပါတယ်။ member2 က တည် ဆောက် သော file ကို လည်း member1 က edit လုပ် နိုင်မှာဖြစ်ပါ တယ်။ SGID permission ကို အဓိက အသုံးပြု ရခြင်း ကတော့ same data ကို multiple users က နေပြီး execute , edit လုပ် ဆောင် လို သောကြောင့်ဖြစ်ပါတယ်။

SGID permission ကို ဖြုတ် ချင်ပါ က အောက် ပါ command တွေကို အသုံးပြုပြီး ဖြုတ်နိုင်ပါတယ်။

Sticky Bit

 

Sticky Bit permission က SUID , SGID တို့ထက် စာ ရင် ပို နားလည်ရ လွယ် ပါ တယ်။ user အားလုံး ကို access permission ပေး ထား တဲ့ အခါ မှာ ကိုယ့်ရဲ့ data က high risk ဖြစ်ပြီး တခြားသူ delete လုပ် တာ မခံ ရအောင် sticky bit permission ပေးပြီး ရှောင် နိုင် ပါ တယ်။ Sticky Bit permission ကို alphabet အနေဖြစ် t နဲ့ ဖော်ပြပြီး number အနေဖြင့် 1 ဖြင့် ဖော် ပြပါ တယ်။

ပိုမို နားလည်လွယ် အောင် ဥပမာ တစ်ခု နဲ့ပြပါမယ်။

database ဆို တဲ့ directory တစ်ခု အရင် တည်ဆောက် ပြီး users အားလုံး ကို full access ပေးရ ပါ မယ်။

ထို နောက် chmod command ကို အသုံးပြုပြီး sticky bit permission ပေး ရပါ မယ်။

alphabet အားဖြင့်

number အရ

အဲ directory ပေါ် မှာ sticky bit permission က effect ဖြစ်မဖြစ် ls -l ဆိုတဲ့ command ဖြင့် ကြည့်နိုင် ပါ တယ်။

အခု user1 အနေနဲ့ login ဝင်ပြီးအဲ directory ထဲမှာ file တစ်ခု တည် ဆောက်ပါမယ်။

ထို နောက် user2အနေနဲ့ ဝင်ပြီး အဲ file ကို delete လုပ်ကြည့်ပါမယ်။

sticky bit permission ပေးထားတဲ့အတွက် delete လုပ် လို့ မရသည် ကို တွေ့ ရ ပါ မယ်။

sticky bit permission ကို ပြန် ဖြုတ် ခ ျင် ပါ က အောက် ပါ အတိုင်း ဖြုတ် နိုင် ပါတယ်။

ကေ ျးဇူးတင်ပါတယ်။