跳到正文

chmod 权限计算器

chmod Calculator

在八进制、符号和勾选三种权限视图之间互转,含 setuid 和粘滞位。

每个权限位一个复选框,八进制、`ls -l` 字符串和 `chmod` 参数一起更新。它还能把 `u+x` 这样的符号式改动应用到你现有的权限上,并显示一个 umask 会给你留下什么。

🔒 完全在你的浏览器里运行chmodpermissionslinuxcalculator

权限

每个权限位一个复选框。
对象读 r写 w执行 x八进制
所有者拥有这个文件的用户。6
用户组属于这个文件所属用户组的账户。4
其他所有人这台机器上其余的所有账户。4
特殊位第四位八进制数字。0

chmod 参数

u=rw,g=r,o=r

用符号表示法改一改

结果

744

ls 显示出来的样子

rwxr--r--

`chmod +x` 是一次改动,不是一个值:改出来是什么,取决于原来是什么。

经过 umask 之后

这个模式变成

644

新文件变成

644

新目录变成

755

umask 会从程序申请的权限里去掉一些位。新文件按 666 申请,新目录按 777 申请,所以同一个 umask 给出 644 和 755。

实际长这样

-rw-r--r--  1 you  staff  4096  file.txt

这串字符里出现大写的 S 或 T,说明 set-id 或 sticky 位开着,而它下面的执行位是关的——这个位不起任何作用,几乎总是打错了。

怎么用

  1. 勾选位,或输入数字

    一切都是双向的:输入 `755`,复选框跟着变;勾一个框,八进制和 `ls -l` 字符串随之改变。

  2. 说明它是不是目录

    这会改变各个位的含义。对目录来说,执行是进入它的权限,读是列出它的权限——有读没有执行的目录是说明会标出的那种令人困惑的情况。

  3. 试一次符号式改动

    `chmod +x` 是一次改动而不是一个值:它产生什么取决于原来是什么。输入 `u+x,go-w`,运行之前先看结果。

  4. 看 umask 会留下什么

    umask 从程序请求的权限里去掉一些位。面板显示在你输入的 umask 下,新文件和新目录最终会是什么。

常见问题

为什么同一个 umask 给出 644 和 755?

因为请求不同,掩码相同。程序创建普通文件时请求 666,创建目录时请求 777;`022` 从两者中去掉组和其他人的写位,留下 644 和 755。掩码从不添加没有被请求的执行位。

`ls -l` 里大写的 S 是什么意思?

表示 set-id 位或粘滞位打开了,而它下面的执行位是关的。这时那个位完全不起作用,而且几乎总是打错了——小写的 `s` 才是有效的组合。

777 有对的时候吗?

几乎没有,而且它通常是诊断手段而不是修复——它让权限错误消失,却不告诉你到底缺的是哪一位。在共享机器上它还意味着任何账户都能改写这个文件。

这覆盖 ACL 吗?

不覆盖。这里只有经典的 Unix 模式。`ls -l` 一行末尾的 `+` 表示上面还有 POSIX ACL,它能授予或拒绝这九个位说不了的访问——该看的是 `getfacl`。

可以从这些接进来

接下来

这些工具吃得下当前工具的产出,结果可以直接送过去。