chmod 权限计算器
chmod Calculator
在八进制、符号和勾选三种权限视图之间互转,含 setuid 和粘滞位。
每个权限位一个复选框,八进制、`ls -l` 字符串和 `chmod` 参数一起更新。它还能把 `u+x` 这样的符号式改动应用到你现有的权限上,并显示一个 umask 会给你留下什么。
权限
| 对象 | 读 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 位开着,而它下面的执行位是关的——这个位不起任何作用,几乎总是打错了。
怎么用
勾选位,或输入数字
一切都是双向的:输入 `755`,复选框跟着变;勾一个框,八进制和 `ls -l` 字符串随之改变。
说明它是不是目录
这会改变各个位的含义。对目录来说,执行是进入它的权限,读是列出它的权限——有读没有执行的目录是说明会标出的那种令人困惑的情况。
试一次符号式改动
`chmod +x` 是一次改动而不是一个值:它产生什么取决于原来是什么。输入 `u+x,go-w`,运行之前先看结果。
看 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`。
可以从这些接进来
进制转换
Number Base Converter
在二进制、八进制、十进制、十六进制乃至最高 36 进制之间互转,并给出按位查看。
JSON 格式化与校验
JSON Formatter & Validator
把 JSON 美化成缩进形式或压成一行,校验语法并直接指出出错的行和列。
YAML 格式化与校验
YAML Formatter & Validator
统一 YAML 缩进并校验语法,把会让解析器崩掉的制表符和锚点错误标出来。
TOML 格式化与校验
TOML Formatter & Validator
格式化并校验 TOML,统一表的排列顺序和内联表的写法。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
docker run 转 Compose
docker run to Compose
把一行 docker run 命令变成 compose 服务定义,也能反着转回去。
.env 文件解析与转换
.env Parser & Converter
解析 .env 文件,并转成 JSON、YAML、shell export、Docker 或 Kubernetes 格式。
.gitignore 生成
.gitignore Generator
挑语言、框架和编辑器模板拼成一份 .gitignore,重复条目自动合并。
Base64 编码解码
Base64 Encoder & Decoder
对文本和文件做 Base64 与 Base64URL 编解码,UTF-8 处理正确。
curl 转代码
curl to Code
把一条 curl 命令转成 fetch、axios、Python requests、Go、PHP 或 PowerShell 代码。
文本哈希计算
Text Hash
算出字符串的 MD5、SHA-1、SHA-256、SHA-384、SHA-512 和 CRC-32,输出可选大写或 Base64。