# chmod 计算器

在八进制(755)、字母(rwxr-xr-x)、ls -l 和 chmod 子句之间转换 Unix 文件权限,带复选框网格以及 setuid、setgid、sticky 位。

https://codeknife.dev/zh/chmod-jisuanqi/

## 功能

在八进制(`755`)、权限字母(`rwxr-xr-x`)、一行 `ls -l` 和 `chmod` 子句(`u=rwx,g=rx,o=rx`)之间转换 Unix 文件权限。勾选网格,所有写法都会随之更新,包括 setuid、setgid 和 sticky 位。

## 使用方法

1. 用任意写法输入模式,或勾选复选框。
2. 在每种写法中查看,并修改其中任意一个。
3. 复制转换后的值,或选择文件类型查看目录或链接的 `ls -l` 行。

## 示例

`755` 即 `rwxr-xr-x`:所有者可以读、写和执行,其他人可以读和执行。`644` 是文件常用的 `rw-r--r--`,`1777` 是像 `/tmp` 这样的共享目录 `rwxrwxrwt`。

## 须知

- 各位数字是所有者、组和其他所有人的读 4、写 2、执行 1 之和。前面再加第四位可加入 setuid 4、setgid 2 和 sticky 1。
- 用字母表示时,特殊位占据执行位的位置:setuid 和 setgid 用 `s`,sticky 用 `t`。大写的 `S` 或 `T` 表示设置了特殊位但没有执行位。
- `u=rwx,g=rx,o=rx` 这样的子句会完整设置每个类别,没有被任何子句提到的类别没有权限。`u+x` 这样的相对写法在这里不读取,因为它取决于文件当前的模式。

## chmod 里的数字是什么意思?

每一位是某一类用户的读(4)、写(2)和执行(1)之和:第一位是所有者,第二位是组,第三位是其他所有人。所以 755 表示所有者可以读、写和执行,其他人可以读和执行。前面再加第四位可加入 setuid(4)、setgid(2)和 sticky(1)。

## 常见问题

### setuid、setgid 和 sticky 位是什么?

setuid 和 setgid 让程序以其所有者或所属组的权限运行,而不是以启动者的权限运行。在目录上,setgid 让新文件继承该组,sticky 位(如 /tmp)只允许文件所有者删除文件。用字母表示时,它们是执行位置上的 s 或 t;大写的 S 或 T 表示未设置执行位。

### 为什么不建议用 777?

这样系统上的每个用户都能修改或替换该文件。只给所有者所需的权限,给组或其他人必要的访问即可:脚本通常用 755,私有文件用 600。

### 这个工具会把我的输入发送到别处吗?

不会。一切都在你的浏览器中完成。你输入的内容不会发送到我们的服务器。