Linux 檔案權限管理 chmod chown 實戰教學

# Linux 檔案權限管理:chmod 同 chown 實戰教學 做 IT 嘅你一定遇過呢個情況:想改個 config file 但 Permission Denied,或者 deploy 完個 web app 發現全部 file 都係 root 擁有,Apache 讀唔到。今日就同大家拆解 Linux 檔案權限嘅核心概念,加埋實戰 CLI 示範,包你睇完即刻用得著。 ## 點解要識 Linux...

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 權限基本概念

 

每個檔案同目錄都有三組權限,分別對應三種身份:

 

  • **Owner(擁有者)**:建立檔案嘅用户
  • **Group(羣組)**:檔案所屬羣組嘅成員
  • **Others(其他人)**:以上兩者以外嘅所有用户
  •  

    每組權限由三個 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 執返正就得!