系统

文件权限(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