DevToolPal
简

Chmod 权限计算器

在勾选框、八进制(755)和符号表示(rwxr-xr-x)之间换算 Unix 文件权限,支持 setuid、setgid 和粘滞位,并生成可直接复制的 chmod 命令。

本地处理,不上传

选项

权限

读写执行特殊
所有者
所属组
其他人

结果

结果会显示在这里

功能简介

Chmod 权限计算器在 Unix/Linux 文件权限的三种常见写法之间互相换算:读、写、执行勾选框,八进制数字(如 755),以及符号表示(如 rwxr-xr-x)。它还会同时生成八进制和符号两种写法的 chmod 命令,用文字说明每类用户能做什么,并支持 setuid、setgid 和粘滞位这些特殊权限。所有计算都在浏览器里完成。

使用方法

  1. 为所有者、所属组和其他人勾选权限,或者直接在输入框里输入。输入框支持八进制(644、0644、4755)、ls -l 风格的字符串(rw-r--r--,或前面带文件类型的 -rw-r--r--),以及 u=rwx,g=rx,o=、a+x 这样的 chmod 表达式。
  2. 勾选框和结果会跟着输入实时变化;点勾选框时,输入框里的权限也会按原来的写法改写。
  3. 在「选项」里填写文件名,需要对整个目录树生效时打开「递归(-R)」,然后一键复制生成的命令。

常用权限

chmod 755 deploy.sh        # rwxr-xr-x
chmod 644 index.html       # rw-r--r--
chmod 600 ~/.ssh/id_ed25519  # rw-------
chmod 1777 /tmp            # rwxrwxrwt
  • 755:目录、脚本和程序。所有者可以修改,所有人可以读取和运行。
  • 644:网页、图片等普通文件。
  • 600:SSH 私钥、.env 等私密文件,只有所有者能读。别人可读的私钥会被 SSH 拒绝使用。
  • 700 用于私有目录;多人共用一个项目时常用 775/664。

数字是怎么来的

每类用户对应一位八进制数字,由读 = 4、写 = 2、执行 = 1 相加得到。对目录来说,读表示能列出其中的文件名,写表示能在里面创建和删除文件,执行表示能进入目录或访问其中的文件。

可选的最高位存放特殊权限:setuid = 4、setgid = 2、粘滞位 = 1。符号表示中它们会替换执行位上的字母:setuid 和 setgid 显示为 s,粘滞位显示为 t。大写的 S 或 T 表示设置了特殊位却没有执行权限,几乎总是配置错误。

计算器还会显示对应的 umask,也就是默认 umask 从 777 中去掉的那些位。umask 为 022 时,新建目录是 755,新建文件是 644。

常见问题

› chmod 755 是什么意思?

三位数字分别对应所有者、所属组和其他人。7 = 读(4)+ 写(2)+ 执行(1),5 = 读 + 执行。所以 755 表示所有者拥有全部权限,其他人可以读取和运行,写作 rwxr-xr-x,是脚本和目录最常用的权限。

› 644 和 755 有什么区别?

644(rw-r--r--)没有执行位,适合 HTML、图片、配置文件等普通文件。755 给所有人加上了执行权限,程序要运行、目录要允许进入,都需要执行位。

› 为什么不建议用 chmod 777?

777 让系统上的每个用户都能修改或替换这个文件。在 Web 服务器上,这意味着任何被攻破的进程都能改写你的代码。正确做法是用 chown 修正所有者,目录用 755、文件用 644。

› setuid、setgid 和粘滞位是什么?

它们是最前面的第四位八进制数字。setuid(4)让程序以所有者身份运行;setgid(2)让程序以所属组身份运行,用在目录上时新文件会继承目录的组;粘滞位(1)让用户不能删除共享目录(如 /tmp)里别人的文件。在 ls 输出中,它们以 s 和 t 显示在执行位的位置。