在 Linux 或其他 Unix 作业系统, 每个档案及目录都会有一个权限, 这个权限会定义谁可以存取, 写入及执行该档案。
一般上权限的数值分为 3 组, 分别是 owner, 群组用户, 其他用户, 这 3 组权限可以用数字或者英文字代号设定, 以下是各数字及字母伐号的意思:
r: 可读权限, 数字是 4
w: 写入权限, 数字是 2
x: 执行权限, 数字是 1
-: 删除权限, 数字是 0
s: setuid 权限
例如我要设定档案 testfile.txt 的权限, owner 可以读/写/执行; 群组用户可以读/执行; 其他用户只可以读, 指令是这样:
如果觉得上面的语法很麻烦, 可以用数字代替字母代号:
上面看到有 3 组数字, 分别是代表 owner (7); 群组用户 (5); 其他用户 (4)。而这个 754 是这样算出的:
7 = 4 (读) + 2 (写) + 1 (执行)
5 = 4 (读) + 1 (执行)
4 = 4 (读)
以下是 chmod 其他一些使用例子:
设定 testfile.txt 的权限为: owner 可读/写/执行; 群组用户可读; 其他用户可读:
设定 testfile.txt 的权限为: owner 可读/写, 群组用户及其他用户的权限不变:
一般 CGI 程式要用 755, 表示设定 test.cgi 的权限为: owner 可读/写/执行, 群组用户及其他用户可读/执行:
一般 PHP 及 CGI 程式要上传档案或写入档案, 要将目录设定 777, owner, 群组用户及其他用户可读/写/执行:
使用 s 是 setuid 权限, 所有人存取样案 testfile.txt 会用 owner 的身份, 如果这个用在可执行的 root 用户档案很危险:
将档案 testfile.txt 的 setuid 权限删除: