MiServe DevTools

我的贴纸

把工具固定在这里,会保存在此浏览器中。

chmod 计算器

勾选权限,或输入 755、rwxr-xr-x 这样的模式,即可得到八进制值、符号形式和 chmod 命令。

权限位
类别 读取 r = 4写入 w = 2执行 x = 1 特殊位
所有者 u
所属组 g
其他用户 o

此模式允许的操作

    使用八进制模式的命令
    使用符号模式的命令

    常用模式

    • 所有者可以修改文件,所有人都可以读取。这是普通文件的常用模式。
    • 只有所有者可以读取和修改文件。适用于 SSH 密钥等私密文件。
    • 所有者可以修改,所有人都可以读取和执行。这是程序和目录的常用模式。
    • 只有所有者可以读取、修改和执行。适用于私有目录和脚本。
    • 所有者和所属组可以修改,所有人都可以读取和执行。适用于组内共享的目录。
    • 所有者和所属组可以修改文件,所有人都可以读取。
    • 只有所有者可以读取文件,任何人都没有写入权限。
    • 所有人都可以创建文件,但粘滞位阻止用户删除彼此的文件。这是 /tmp 的模式。

    在浏览器中运行。粘贴的内容不会被上传。

    关于此工具

    模式是如何构成的

    Unix 为每个文件保存三组权限:所有者一组,所属组一组,其他用户一组。每组有三个位:读取(4)、写入(2)和执行(1),开启的位相加就是一个八进制数字。在 755 中,所有者是 4 + 2 + 1 = 7,所属组和其他用户是 4 + 1 = 5,ls -l 将其显示为 rwxr-xr-x。

    符号形式字段也接受 ls -l 输出的完整十字符字符串,例如 -rw-r--r-- 或 drwxr-xr-x。第一个字符表示文件类型,不是权限,所以工具会忽略它。

    这些位对目录意味着什么

    对目录而言,读取权限允许列出其中的名称,执行权限允许进入目录并访问其中的文件。写入权限允许创建、删除和重命名其中的条目,但必须同时具有执行权限。所以目录通常在有读取权限的地方也有执行权限。这也意味着能否删除一个文件,取决于包含它的目录的权限,而不是文件本身的权限。

    setuid、setgid 和粘滞位

    最前面的第四位数字保存三个特殊位:setuid(4)、setgid(2)和粘滞位(1)。ls -l 在执行位的位置用 s 或 t 表示它们。大写的 S 或 T 表示设置了特殊位,但它下面的执行位没有设置。

    此工具输出的两条命令会设置你勾选的位,但 chmod 不一定会清除文件原有的特殊位。大多数 Linux 发行版使用的 GNU chmod 会保留目录的 setuid 和 setgid 位,除非模式中明确指定,即使执行 chmod 755 也是如此:要清除它们,请写 chmod 00755 或加上 a-s。macOS 的 chmod 在遇到 o=rx 这样的子句时会保留粘滞位,要用 chmod -t 才能清除。粘滞位以单独的 +t 子句输出,因为两种实现都接受这种写法。

    常见问题

    chmod 755 是什么意思?

    所有者可以读取、写入和执行;所属组和其他用户可以读取和执行,但不能写入。这是程序、脚本和目录的常用模式:其他人可以使用,但只有所有者可以修改。

    SSH 私钥应该设置什么权限?

    使用 600,让只有所有者能读写该文件。如果私钥能被其他用户读取,OpenSSH 会拒绝使用它。

    为什么应该避免 chmod 777?

    777 模式允许系统上的每个用户修改或替换该文件;如果是目录,还能在其中添加或删除文件。如果程序因权限错误而失败,请查明它以哪个用户身份运行,然后给该用户或其所属组授予所需的权限。

    ls -l 中的大写 S 或 T 是什么意思?

    表示设置了 setuid、setgid 或粘滞位,但同一位置的执行位没有设置。小写的 s 或 t 表示两者都已设置。

    输入的内容会被发送到服务器吗?

    不会。转换由浏览器标签页中的 JavaScript 完成。此工具不会用你输入的内容发出任何网络请求,网站的安全策略也会阻止向其他任何主机发出请求。

    网络分类的其他工具