Linux 檔案權限管理:chmod 同 chown 實戰教學
做 IT 嘅你一定遇過呢個情況:想改個 config file 但 Permission Denied,或者 deploy 完個 web app 發現全部 file 都係 root 擁有,Apache 讀唔到。今日就同大家拆解 Linux 檔案權限嘅核心概念,加埋實戰 CLI 示範,包你睇完即刻用得着。
點解要識 Linux 檔案權限管理?
Linux 係一個多用户系統,權限管理係佢嘅安全基石。無論你係 sysadmin、DevOps 定係 developer,每日都會接觸到 chmod、chown 呢兩條 command。唔識嘅話,輕則 deploy 失敗,重則俾人 hack 咗都唔知咩事。
Linux 權限基本概念
每個檔案同目錄都有三組權限,分別對應三種身份:
每組權限由三個 bit 組成:
例如 `rwxr-xr–` 即係:Owner 有 7 (rwx)、Group 有 5 (r-x)、Others 有 4 (r–),數字表示就係 **754**。
chmod 實戰:修改 Linux 檔案權限
用數字模式(最常用)
俾 owner 全部權限,group 同 others 只讀
chmod 744 /etc/myapp/config.conf
俾 script 執行權限
chmod +x deploy.sh
遞迴修改整個目錄
chmod -R 755 /var/www/html/
常見場景:web server 需要讀取權限
chmod 644 /var/www/html/index.html
用符號模式(更直覺)
加執行權限俾所有人
chmod a+x script.sh
移除 group 同 others 嘅寫入權限
chmod go-w important.conf
只俾 owner 讀寫,其他人完全冇權限
chmod go-rwx secret.key
chown 實戰:修改擁有者同羣組
改擁有者
chown www-data /var/www/html/
改擁有者 + 羣組
chown www-data:www-data /var/www/html/
遞迴修改
chown -R terry:developers /home/terry/projects/
只改羣組(唔改 owner)
chown :nginx /etc/nginx/sites-enabled/
常見實戰場景
**場景一:Deploy 完 web app 權限錯曬**
確保 web server user 可以讀寫
sudo chown -R www-data:www-data /var/www/myapp/
sudo find /var/www/myapp/ -type d -exec chmod 755 {} \;
sudo find /var/www/myapp/ -type f -exec chmod 644 {} \;
**場景二:SSH private key 權限太鬆**
SSH 要求 private key 必須係 600
chmod 600 ~/.ssh/id_rsa
**場景三:共享目錄俾團隊用**
建立 shared group
sudo groupadd devteam
sudo usermod -aG devteam alice
sudo usermod -aG devteam bob
設定目錄權限
sudo chown -R :devteam /shared/projects/
sudo chmod -R 770 /shared/projects/
sudo chmod g+s /shared/projects/ # setgid bit,新 file 繼承 group
進階技巧:特殊權限 Bit
SUID:執行時以 owner 身份執行(例如 passwd command)
chmod u+s /usr/bin/myapp
SGID:新檔案繼承目錄嘅 group
chmod g+s /shared/teamfolder/
Sticky bit:只有 owner 可以刪除自己嘅 file(例如 /tmp)
chmod +t /shared/public/
總結
Linux 檔案權限管理係基本功,但好多人都係半桶水。記住幾個關鍵數字:**644**(普通 file)、**755**(目錄/script)、**600**(private key)、**777**(千祈唔好用!)。配合 chown 管理擁有者,基本上 90% 嘅日常場景都搞得掂。
下次遇到 Permission Denied,唔使 panic,用 `ls -la` 睇清楚權限,再用 chmod 同 chown 執返正就得!



