Skip to content
GitHub

Linux File Permissions နှင့် Users & Sudo စီမံခန့်ခွဲခြင်း

Linux Permissions Matrix (rwx သဘောတရား)

Section titled “Linux Permissions Matrix (rwx သဘောတရား)”

Terminal တွင် ls -l ဟု ရိုက်ကြည့်ပါက ဖိုင်တစ်ခုချင်းစီ၏ ရှေ့တွင် -rwxr-xr-- ကဲ့သို့သော စာလုံး ၁၀ လုံးကို တွေ့ရပါမည်:

Terminal window
ls -l
# Output:
# -rwxr-xr-- 1 ubuntu www-data 4096 Aug 14 10:00 server.js

ဤစာလုံး ၁၀ လုံးကို အပိုင်း ၄ ပိုင်း ခွဲခြားနားလည်နိုင်ပါတယ်:

graph LR
Type["- (File Type)"] --> Owner["rwx (Owner / User)"]
Owner --> Group["r-x (Group)"]
Group --> Others["r-- (Others / Public)"]
  1. File Type (ပထမစာလုံး):
    • - : ပုံမှန် File
    • d : Directory (Folder)
  2. Owner Permissions (စာလုံး ၂ မှ ၄): ဖိုင်ပိုင်ရှင် ပြုလုပ်နိုင်သော အခွင့်အရေး။
  3. Group Permissions (စာလုံး ၅ မှ ၇): သက်ဆိုင်ရာ Group အဖွဲ့ဝင်များ ပြုလုပ်နိုင်သော အခွင့်အရေး။
  4. Others Permissions (စာလုံး ၈ မှ ၁၀): Server ပေါ်ရှိ အခြား User များ အားလုံး ပြုလုပ်နိုင်သော အခွင့်အရေး။

Permission တန်ဖိုးများ (Read, Write, Execute)

Section titled “Permission တန်ဖိုးများ (Read, Write, Execute)”

Linux တွင် Permission အမျိုးအစား ၃ မျိုး ရှိပြီး ၎င်းတို့ကို ဂဏန်းတန်ဖိုးများဖြင့် သတ်မှတ်ပါတယ်:

သင်္ကေတအခွင့်အရေး (Permission)ဂဏန်းတန်ဖိုး (Octal Number)
rRead (ဖိုင်ကို ဖတ်ရှုခွင့်၊ Folder ထဲရှိ ဖိုင်စာရင်းကို ကြည့်ခွင့်)4
wWrite (ဖိုင်ကို ပြင်ဆင်ခွင့်၊ ဖျက်ခွင့်၊ Folder ထဲ ဖိုင်အသစ် ထည့်ခွင့်)2
xExecute (Script / Program အဖြစ် Run ခွင့်၊ Folder ထဲ ဝင်ခွင့်)1
-No Permission (မည်သည့် အခွင့်အရေးမှ မရှိပါ)0

ဂဏန်းပေါင်းလဒ်များ (Common Combinations):

Section titled “ဂဏန်းပေါင်းလဒ်များ (Common Combinations):”
  • 7 = 4 + 2 + 1 (Read + Write + Execute အပြည့်အစုံ)
  • 6 = 4 + 2 + 0 (Read + Write သာရမည်၊ Run ၍ မရပါ)
  • 5 = 4 + 0 + 1 (Read + Execute သာရမည်၊ ပြင်၍ မရပါ)
  • 4 = 4 + 0 + 0 (Read သာ ရမည် - Read Only)

chmod ဖြင့် Permissions ပြောင်းလဲခြင်း

Section titled “chmod ဖြင့် Permissions ပြောင်းလဲခြင်း”

chmod (Change Mode) Command ကို သုံး၍ ဖိုင်နှင့် Folder များ၏ ခွင့်ပြုချက်ကို ပြောင်းလဲနိုင်ပါတယ်:

Terminal window
# 1. ပုံမှန် Web Files များအတွက် အသင့်တော်ဆုံး (Owner=rw, Group=r, Others=r)
chmod 644 index.html
# 2. Executable Bash Script များအတွက် (Owner=rwx, Group=rx, Others=rx)
chmod 755 deploy.sh
# 3. လုံခြုံရေး အလွန်မြင့်သော SSH Private Key များအတွက် (Owner သာ ဖတ်ခွင့်ရှိ)
chmod 600 ~/.ssh/id_ed25519
# 4. Folder တစ်ခုလုံးနှင့် ၎င်းအောက်ရှိ ဖိုင်များအကုန် ပြောင်းရန် (-R Recursive)
chmod -R 755 /var/www/html

chown ဖြင့် ဖိုင်ပိုင်ရှင် ပြောင်းလဲခြင်း

Section titled “chown ဖြင့် ဖိုင်ပိုင်ရှင် ပြောင်းလဲခြင်း”

chown (Change Owner) သည် ဖိုင်ကို မည်သည့် User နှင့် Group က ပိုင်ဆိုင်ကြောင်း ပြောင်းလဲပေးပါတယ်:

Terminal window
# ဖိုင်ပိုင်ရှင်ကို ubuntu User သို့ ပြောင်းမည်
chown ubuntu app.js
# Owner ရော Group ပါ တစ်ပြိုင်နက် ပြောင်းမည် (User:Group)
chown ubuntu:www-data /var/www/html
# Folder အောက်ရှိ ဖိုင်အားလုံးကို ပိုင်ရှင် အကုန်ပြောင်းမည် (-R)
chown -R www-data:www-data /var/www/my-website

User အသစ် ဖန်တီးခြင်းနှင့် Sudo ခွင့်ပြုချက် ပေးခြင်း

Section titled “User အသစ် ဖန်တီးခြင်းနှင့် Sudo ခွင့်ပြုချက် ပေးခြင်း”

Root User သည် Server ၏ အမြင့်ဆုံး Admin ဖြစ်သော်လည်း လုံခြုံရေးအရ Root အနေဖြင့် နေ့စဉ် အလုပ်မလုပ်သင့်ပါ (Principle of Least Privilege):

graph TD
RootAdmin["👑 Root User (အမြင့်ဆုံး - တိုက်ရိုက် မသုံးရ)"]
NormalUser["👤 Standard User (e.g. devops_admin)"]
NormalUser -->|sudo ရိုက်မှသာ Admin အလုပ် လုပ်မည်| SecureOps["🛡️ Secure Admin Execution"]

၁။ User အသစ် ဆောက်ခြင်း (adduser)

Section titled “၁။ User အသစ် ဆောက်ခြင်း (adduser)”
Terminal window
# devops_admin အမည်ရှိ user အသစ် ဆောက်မည်
sudo adduser devops_admin

စနစ်မှ Password နှင့် အချက်အလက်များ မေးပါမည်။ လုံခြုံသော Password ထည့်ပေးပါ။

၂။ Sudo Group ထဲသို့ ထည့်သွင်းခြင်း (usermod)

Section titled “၂။ Sudo Group ထဲသို့ ထည့်သွင်းခြင်း (usermod)”

User အသစ်အား Admin Commands များကို sudo ခံ၍ Run နိုင်ခွင့် ပေးခြင်း:

Terminal window
sudo usermod -aG sudo devops_admin

၃။ User ပြောင်းလဲ၍ စမ်းသပ်ခြင်း (su)

Section titled “၃။ User ပြောင်းလဲ၍ စမ်းသပ်ခြင်း (su)”
Terminal window
# devops_admin အဖြစ် ဝင်ရောက်မည်
su - devops_admin
# sudo အလုပ်လုပ်မလုပ် စစ်ဆေးမည်
sudo apt update

🧠 အသိပညာ စစ်ဆေးမှု (Quiz)

Section titled “🧠 အသိပညာ စစ်ဆေးမှု (Quiz)”

Linux Permissions စစ်ဆေးမှု

မေးခွန်းများကို ဖြေဆိုပြီး မိမိ၏ နားလည်မှုကို စစ်ဆေးပါ

1. ဖိုင်တစ်ခုကို chmod 644 ပေးလိုက်ပါက Owner သည် မည်သည့် အခွင့်အရေး ရရှိမည်နည်း?

2. Production Server ပေါ်တွင် အဘယ်ကြောင့် 'chmod 777' ကို မသုံးသင့်သနည်း?

📖

ဒီသင်ခန်းစာ ဖတ်ပြီးပြီလား?

ပြီးမြောက်ကြောင်း မှတ်သားထားရန် အောက်ပါ ခလုတ်ကို နှိပ်ပါ