Linux 權限管理基本功:sudo 同 chmod 點樣保護你嘅伺服器

Linux 權限管理基本功:sudo 同 chmod 點樣保護你嘅伺服器 做 IT 嘅朋友一定聽過一句話:「權限係 Linux 安全嘅第一道防線」。無論你管緊一部 VPS 定係成個數據中心,Linux 權限管理都係最基本亦係最重要嘅安全措施。今日就同大家由淺入深,拆解 sudo 同 chmod 嘅正確用法。 點解 Linux 權限管理咁重要? 想像下:你公司有個 junior admin,佢只需要...

Linux 權限管理基本功:sudo 同 chmod 點樣保護你嘅伺服器

做 IT 嘅朋友一定聽過一句話:「權限係 Linux 安全嘅第一道防線」。無論你管緊一部 VPS 定係成個數據中心,Linux 權限管理都係最基本亦係最重要嘅安全措施。今日就同大家由淺入深,拆解 sudo 同 chmod 嘅正確用法。

👉 延伸閱讀:Linux Server 安全加固 6 步搞掂 — Defense in Depth 實戰指南

點解 Linux 權限管理咁重要?

想像下:你公司有個 junior admin,佢只需要重啟 Apache,但係你俾咗 root 密碼佢。有一日佢唔小心打咗 rm -rf /⋯⋯你明嘅。呢個就係點解Linux 權限管理咁關鍵 — 唔係唔信人,而係要將風險降到最低。

Linux 嘅權限模型分三個層次:使用者(owner)、羣組(group)、其他人(others)。每個檔案同目錄都有 read(r)、write(w)、execute(x)三種權限。理解呢個模型係做好Linux 權限管理嘅第一步。

chmod 實戰:數字模式 vs 符號模式

chmod 有兩種寫法,數字模式(octal)最常用:

# 數字模式 — 最直接
chmod 755 script.sh      # owner=rwx, group=r-x, others=r-x
chmod 644 config.ini     # owner=rw-, group=r--, others=r--
chmod 600 id_rsa         # owner=rw-, group=---, others=---

# 符號模式 — 更靈活
chmod u+x deploy.sh      # 俾 owner 加 execute 權限
chmod g-w shared.txt     # 移除 group 嘅 write 權限
chmod o= report.csv      # 清空 others 所有權限

記住呢個口訣:4=read, 2=write, 1=execute,加埋就係你想要嘅權限。例如 7 = 4+2+1 = rwx,5 = 4+1 = r-x。

實戰貼士:chmod 777 係大忌!除非你 100% 肯定冇安全風險,否則永遠唔好用 777。網上好多教學叫你 chmod 777 解決問題,嗰啲係斬腳趾避沙蟲。

sudo 進階設定:visudo 同 sudoers 規則

sudo 唔係淨係「用 admin 身份行指令」咁簡單。透過 /etc/sudoers 你可以做到極精細嘅Linux 權限管理

# 編輯 sudoers(一定要用 visudo!)
sudo visudo

# 常用規則範例
# 俾 john 重啟 Apache,唔需要密碼
john ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart apache2

# 俾 dev 羣組行特定 script
%dev ALL=(ALL) /opt/deploy/deploy.sh

# 限制只可以以特定 user 身份行
deployer ALL=(www-data) /usr/bin/git pull

重點:一定要用 visudo 而唔係直接 edit /etc/sudoers!visudo 會幫你檢查語法,避免你 save 咗個錯嘅 sudoers file 之後 lock 死自己。

真實案例:權限配置不當導致嘅災難

上年有個客户嘅 WordPress 網站俾人 hack,原因係 uploads 目錄 set 咗 777,攻擊者 upload 咗一個 PHP webshell 就直接攞到 www-data 權限。如果當初 set 755(directory)同 644(files),再加埋正確嘅 ownership(www-data:www-data),呢個攻擊根本唔會成功。

另一個案例:有間 startup 嘅 DevOps 為咗方便,將成個 team 嘅 sudoers 設成 ALL=(ALL) NOPASSWD: ALL。結果有個同事嘅 laptop 俾人偷咗,SSH key 冇 passphrase,攻擊者直接攞到 root 權限。呢個就係Linux 權限管理做得唔好嘅代價。

最佳實踐 Checklist

做好Linux 權限管理,記住以下幾點:

  • ✅ 用 chmod 750 俾 directory,640 俾 files(default 安全設定)
  • ✅ 永遠唔好用 777,除非你知自己做緊乜
  • ✅ sudoers 規則要精細,唔好俾 ALL=(ALL) ALL
  • ✅ 定期 audit:find / -perm /o=w -type f 2>/dev/null 揾出 world-writable files
  • ✅ 用 sudo -l 檢查當前 user 有咩 sudo 權限
  • ✅ 敏感 files(SSH keys、configs)一定要 chmod 600
  • ✅ 考慮用 setfacl 做更精細嘅 ACL 控制

🔗 參考資料:NVD NIST 漏洞資料庫

記住:權限設定唔係一次性工作,而係持續嘅安全實踐。每次 deploy 新服務、加新 user,都要重新審視權限係咪合理。做好Linux 權限管理,你嘅伺服器就已經安全咗一大半。

#IT教學 #Linux #技術分享 #安全