系統

檔案權限(file permissions)

檔案權限(file permissions)決定了誰可以對一個檔案做什麼:讀它、改它,還是執行它。在類 Unix 系統(Linux、macOS)上,每個檔案都帶著三個小開關——r(讀)、w(寫)、x(執行)——而且會分別為三類人設定:檔案擁有者、擁有者所屬的群組,以及其他所有人。

ls -l 裡那串看著費解的「rwxr-xr-x」說的就是這件事:擁有者可讀、可寫、可執行,而群組和其他人只能讀和執行。同樣的東西也能寫成一個數字,比如 755,每一位數字其實就是 r=4 + w=2 + x=1 相加而來。你用 chmod 來修改它們。

最容易讓新手栽跟頭的是 x。一個指令碼並不會因為它存在就被允許執行——它需要執行位元(execute bit)。這就是為什麼你常常要先敲 chmod +x deploy.sh,之後 ./deploy.sh 才跑得起來;也是為什麼少了那個 x,系統就冷冷地丟給你一句「Permission denied」。

$ ls -l deploy.sh
-rw-r--r--  1 you  staff  812 deploy.sh
$ chmod +x deploy.sh   # add the execute bit
$ ./deploy.sh          # now it runs

沒有 x 就跑不了——chmod +x 把執行開關打開。

數字 755 並不神秘:它就是三位 r=4 + w=2 + x=1——擁有者 7(rwx)、群組 5(r-x)、其他人 5(r-x)。

又稱
chmodrwx755permission deniedexecutable bit