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

download as a pdf file Download PDF

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 ကို ျပန္ ျဖဳတ္ ခ ်င္ ပါ က ေအာက္ ပါ အတိုင္း ျဖဳတ္ နိုင္ ပါတယ္။

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