使用方法
- 为所有者、组和其他所有用户勾选读取、写入和执行复选框。
- 或者输入八进制值(如 640),或键入从 ls -l 复制的符号字符串(如 rw-r----- 或 -rw-r-----)。
- 根据需要添加 setuid、setgid 或粘滞位,或选择一个常用值。
- 输入文件名并复制 chmod 命令。
工作原理
三个类别(所有者、组、其他人)各有三种权限。读取为 4,写入为 2,执行为 1,它们的和即一个八进制数位,因此 rwx = 7、r-x = 5、r-- = 4。三位数字组成权限模式:755 表示所有者拥有 rwx,组和其他人拥有 r-x。
前面可选的第四位数字表示特殊位:4 为 setuid,2 为 setgid,1 为 sticky。在符号形式中,它们会替换执行位:setuid 或 setgid 显示为 s,sticky 显示为 t。大写 S 或 T 表示已设置特殊位但未设置执行位,这通常是配置错误。
符号输入框接受九个字符(rwxr-xr-x),也接受 ls -l 输出的十字符形式;其中第一个字符表示文件类型(- 表示文件,d 表示目录),此处会忽略。末尾来自 SELinux 或 ACL 的 . 或 + 也会被接受。
会显示两种命令:一次性设置所有位的八进制形式,以及等效的符号形式,如 u=rwx,g=rx,o=rx。文件名包含空格或其他特殊字符时会为 shell 加上引号;开头的 ~/ 以及通配符 * 和 ? 不会加引号,以便 shell 展开。在 GNU chmod 中,对目录使用八进制模式不会清除已设置的 setuid 或 setgid 位;如需清除它们,请使用符号形式,或使用 00755 这样的五位模式。
示例
Web 文件和文件夹
Web 服务器只读取的文件通常为 644 (rw-r--r--),目录通常为 755 (rwxr-xr-x),以便进入和列出目录。
私有 SSH 密钥
SSH 会拒绝其他人可读取的密钥。只勾选所有者的读取和写入,得到 600,命令为 chmod 600 ~/.ssh/id_ed25519(将路径作为文件名输入)。
共享上传目录
类似 /tmp 的目录使用 1777(rwxrwxrwt):所有用户都可以创建文件,但粘滞位会阻止用户删除彼此的文件。
常见问题
755 和 775 有什么区别?
使用 775 时,组也可以写入(创建、更改和删除目录中的文件)。使用 755 时,只有所有者可以写入;组和其他用户只能读取和执行。
为什么应该避免使用 777?
777 允许系统中的每个用户更改或替换文件。在 Web 服务器上,这可能让其他账户或已受攻击的进程注入代码。写入权限应仅授予所有者或特定组。
对目录来说,执行权限意味着什么?
对于目录,执行(x)表示允许进入该目录并访问其中的文件。仅有读取权限只能列出文件名,但无法打开文件。
这会更改我计算机上的权限吗?
不会。它只计算数值并生成命令文本。您需要在终端中自行运行该命令。
隐私
所有计算均在浏览器中完成。您输入的文件名不会被发送、存储或用于分析。