不喜欢广告? 无广告 今天

chmod 计算器 Unix 文件权限无需记忆八进制数

发布日期
chmod 计算器:Unix 文件权限无需记忆八进制数 1
广告 移除?

Unix文件权限几乎会让每个人在某个时刻感到困惑。这些晦涩的 rwxr-xr-xls -la 输出,三位八进制数字,权限集之间的区别 chmod, chown,并且 chgrp —— 这些内容很难全部记住。这是一个你可以收藏的参考资料。

如果你现在需要计算一个值,请使用 chmod 计算器 —— 你可以通过视觉方式选择权限,它会生成正确的八进制或符号表示法。

权限模型

每个文件和目录都有三个权限集:

  • 所有者 (u) —— 拥有该文件的用户
  • 组 (g) —— 属于该文件分配组的成员
  • 其他人 (o) —— 其他人

每个权限集包含三个位: 读取 (r = 4), 写入 (w = 2), 执行 (x = 1)。将它们相加以获得该权限集的八进制数字。因此 rwx = 4+2+1 = 7, r-x = 4+0+1 = 5, r-- = 4+0+0 = 4.

755 这样的三位八进制数表示:所有者获得7(rwx),组获得5(r-x),其他人获得5(r-x)。

读取 ls -la 输出

-rwxr-xr-x 1 thien www-data 4096 Apr 10 10:00 deploy.sh
drwxr-x--- 2 thien www-data 4096 Apr 10 09:00 private/

第一个字符是文件类型: - 对于普通文件, d 对于目录, l 对于符号链接。接下来的九个字符是按顺序排列的三个权限集——所有者、组、其他人——每个权限集三个字符。

常见的 chmod 值

价值所有者团体其他的典型用途
644rw-r–r–网页文件(HTML、CSS、PHP)
755rwxr-xr-x目录、shell脚本
600rw-SSH密钥、私有配置文件
640rw-r–配置文件(组可读)
664rw-rw-r–共享项目文件
700rwx私有脚本
777rwxrwxrwx不要使用 —— 给所有人完全控制权

为什么777是错误的

chmod 777 是常见的“稍后修复”快捷方式,往往会长期存在。它会给予系统上的每个用户——在Web环境中,任何PHP进程——对文件的写入权限。在共享服务器上这会成为一个安全漏洞,在VPS上则显得粗心大意。应通过 chown 反而。

chmod 与 chown 与 chgrp

命令它改变了什么
chmod文件的读取/写入/执行权限
chown文件的所有用户(以及可选的组)
chgrp文件所属的组
chmod 644 index.php           # Set permissions
chown www-data:www-data .    # Change owner and group
chgrp developers config.yml  # Change group only

粘滞位、setUID、setGID

这些由一个额外的八进制数字(作为前缀)或符号表示法中的字母替换表示。

  • 粘滞位 (1 / t) —— 在目录中,只有文件所有者才能删除自己的文件。用于 /tmp.
  • setUID (4 / s 在所有者 x 上) —— 文件以所有者身份运行,而不是执行用户。用于 sudopasswd.
  • setGID (2 / s 在组 x 上) —— 对于文件:以文件所属的组运行。对于目录:新文件继承目录的组,这对共享项目目录非常有用。
chmod +t /shared/dir          # Add sticky bit
chmod 1755 /shared/dir        # Sticky bit + standard 755
chmod g+s /var/www/project/   # setGID on a directory

ls -l 输出中,目录上的setGID看起来像 drwxrwsr-x;粘滞位看起来像 drwxrwxrwt.

递归权限:小心使用 -R

chmod -R 对目录及其内部所有内容应用权限。常见的错误是使用 755 递归地为所有文件设置执行权限,即使它们并不需要。一个更安全的方法是将目录和文件分开处理:

# Apply 755 to directories, 644 to files
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

解决常见的权限问题

# Web server can't read your files (403 Forbidden)
chown -R www-data:www-data /var/www/html
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

# SSH key refused (WARNING: UNPROTECTED PRIVATE KEY FILE)
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 700 ~/.ssh

# Script won't execute (Permission denied)
chmod +x deploy.sh

# PHP can't write to uploads directory
chown www-data:www-data wp-content/uploads
chmod 755 wp-content/uploads

跳过脑力计算

在脑海中翻译 rwxr-x---750 是可行的,但很繁琐。在 IO Tools 的 chmod 计算器 让你通过视觉方式切换权限,并立即显示八进制值和符号表示法——当你需要在运行 chmod -R 之前确保正确时非常有用。

想要享受无广告的体验吗? 立即无广告

安装我们的扩展

将 IO 工具添加到您最喜欢的浏览器,以便即时访问和更快地搜索

添加 Chrome 扩展程序 添加 边缘延伸 添加 Firefox 扩展 添加 Opera 扩展

记分板已到达!

记分板 是一种有趣的跟踪您游戏的方式,所有数据都存储在您的浏览器中。更多功能即将推出!

广告 移除?
广告 移除?
广告 移除?

新闻角 包含技术亮点

参与其中

帮助我们继续提供有价值的免费工具

给我买杯咖啡
广告 移除?