linux chmod permissions sysadmin cheat-sheet security

Chmod 计算器与 Linux 文件权限完全指南

Linux 文件权限、符号表示法与八进制表示法以及 chmod 命令的详尽参考。学习如何使用 chmod 计算器来保护您的文件安全。

Chmod 计算器与 Linux 文件权限完全指南

在 Linux 和 Unix 的世界中,管理谁可以读取、写入或执行文件是一项基本的安全任务。chmod(change mode)命令是完成此任务的主要工具。无论您是修复“403 Forbidden”错误的 Web 开发人员,还是加固服务器的系统管理员,理解文件权限都至关重要。

本指南将解释 Linux 权限的工作原理、八进制表示法与符号表示法的区别,以及如何使用 Chmod 计算器


1. 理解权限结构

Linux 中的每个文件和目录都有三组权限,每组包含三种访问类型。

三个层级(Who,针对谁)

  • 所有者 (User, u):文件的拥有者。
  • 用户组 (Group, g):文件所属用户组的成员。
  • 其他用户 (Others, o):系统上的其他所有人。

三种访问类型(What,做什么)

符号 访问类型 八进制值 说明
r 读取 (Read) 4 打开并查看文件内容。
w 写入 (Write) 2 修改或删除文件。
x 执行 (Execute) 1 将文件作为程序/脚本运行。
- 0 不允许访问。

2. 符号表示法 vs 八进制表示法

有两种方式来表示和修改权限:

八进制表示法(数字)

通过相加每种访问类型的值来计算权限。

  • 7 (4+2+1):读取、写入和执行
  • 6 (4+2):读取和写入
  • 5 (4+1):读取和执行
  • 4:只读

示例chmod 755 myfile

  • 所有者:7 (rwx)
  • 用户组:5 (r-x)
  • 其他用户:5 (r-x)

符号表示法(字母)

使用字符来表示要修改的对象和权限。

  • chmod u+x myfile:为所有者添加执行权限。
  • chmod g-w myfile:为用户组移除写入权限。
  • 示例chmod u=rwx,g=rx,o=rx myfile(等同于 755)

3. 常用 Chmod 命令

命令 权限 使用场景
chmod 777 rwxrwxrwx 危险! 任何人都可以做任何事。仅用于测试。
chmod 755 rwxr-xr-x 公共目录和脚本的标准权限。
chmod 644 rw-r--r-- 公共文件的标准权限(所有人可读,仅所有者可写)。
chmod 600 rw------- 私有文件(如 SSH 密钥、配置文件)。
chmod 400 r-------- 只读私有文件。

4. 高级权限:SUID、SGID 和 Sticky Bit

除了基本的 rwx,Linux 还使用特殊位来实现特定行为:

  • SUID (4000):执行文件时,以文件所有者的权限运行。
  • SGID (2000):在目录中创建的文件继承该目录的用户组。
  • Sticky Bit (1000):只有文件所有者(或 root)可以删除或重命名目录中的文件(常用于 /tmp)。

5. 使用 Chmod 计算器

手动计算八进制值(如 "rwx r-x r-x" = 755)容易出错。Chmod 计算器 允许您只需勾选所需的权限,它就会为您生成正确的八进制或符号命令。

虽然我们目前还没有专门的 chmod 工具,但您可以使用我们的 单位转换器 进行进制转换(如二进制转十进制),这正是文件权限背后的底层逻辑!


FAQ:文件权限故障排除

问:即使使用了 sudo,我仍然收到“Permission Denied”。为什么?

sudo 赋予您 root 权限,但它不能绕过某些文件系统限制(如不可变位 i 位)或网络文件系统 (NFS) 权限。此外,请检查父目录是否设置了执行 (x) 位,这是“进入”目录所必需的。

问:如何递归更改权限?

:使用 -R 标志。例如,chmod -R 755 /my/directory/ 将权限应用于该目录及其内部的所有文件和子目录。

问:sudo 和 chmod 的区别是什么?

chmod 更改文件的规则sudo(Substitute User Do)允许您以另一个用户(通常是 root)的身份行事,该用户拥有更改这些规则的权限。


Tool3M 相关工具