首页文本与开发 › Linux 权限 chmod 计算器

Linux 权限 chmod 计算器

勾选读写执行权限即可得到 755 这样的数字和 rwxr-xr-x 符号表示,也能输入数字反查勾选状态并生成命令。

   
   
   
   

数字权限是怎么算出来的

Linux 把每个文件的权限分成三组:所有者、所属组、其他人,每组各有读、写、执行三个开关。读记作 4,写记作 2,执行记作 1,把一组里打开的权限相加就得到这一位的数字,三组拼起来就是常见的 755、644。例如 755 表示所有者是 7,等于 4 加 2 加 1,读写执行全有;组和其他人都是 5,等于 4 加 1,可读可执行但不能写。符号表示法把同样的信息写成九个字符 rwxr-xr-x,ls -l 命令显示的就是这种形式,最前面还会多一个字符表示类型,短横线是普通文件,d 是目录,l 是符号链接。

目录、特殊位与安全建议

权限对目录的含义和对文件不同:目录的读权限允许列出里面有哪些文件,写权限允许在里面新建和删除文件,执行权限允许进入目录并访问其中的内容。所以目录几乎总要带 x,一个 644 的目录是进不去的。还要注意删除文件看的是所在目录的写权限,而不是文件自己的权限,这正是 /tmp 要加粘滞位的原因:有了粘滞位,用户只能删除自己创建的文件。

特殊位共三个:setuid 让可执行文件以其所有者的身份运行,passwd 命令就靠它临时获得管理员权限,随意设置会造成提权漏洞;setgid 加在目录上很实用,新建的文件会自动继承目录的所属组,方便团队共享;粘滞位如上所述。符号表示中这些位占用执行位的字符,显示为小写 s、t 说明执行位也是打开的,显示为大写 S、T 说明执行位没开,通常是配置失误。

实践建议:普通文件用 644,需要执行的脚本和目录用 755,私钥和含密码的配置文件必须是 600,否则 SSH 会直接拒绝使用。不要图省事用 777,它意味着服务器上任何账号都能改写你的文件,是最常见的安全事故来源。批量修改时用 find 命令分别处理目录和文件,避免递归地把所有文本文件也变成可执行。

常见问题

777 和 755 有什么区别?

777 允许任何用户读写和执行,等于完全放开;755 只有所有者能写。网站目录用 777 会让任何能登录服务器的账号篡改文件,应当避免。

为什么 SSH 私钥必须是 600?

OpenSSH 会检查私钥权限,只要组或其他人可读就拒绝使用并报 UNPROTECTED PRIVATE KEY FILE,这是为了防止同一台机器上的其他用户窃取私钥。

4755 前面的 4 是什么?

是 setuid 位,表示程序运行时使用文件所有者的身份。它会带来提权风险,只在确实需要时设置。

怎样只给目录加执行权限?

用 find . -type d -exec chmod 755 {} + 处理目录,再用 find . -type f -exec chmod 644 {} + 处理文件,避免递归时把普通文件也设成可执行。