开发者工具 · Chmod 计算器
执行位对目录执行什么操作,以及为什么 644 文件夹会中断
· 工作原理
chmod UNIX 开发人员工作流程
在目录上,x 不是运行任何东西;而是运行任何东西。它授予穿越权。这篇文章解释了 read/search 分割、它产生的奇怪情况以及避免它们的模式。
您可以读取的文件的权限被拒绝 - 文件为 644,目录为 644,cat 仍然失败
当可读文件的目录缺少相关类的执行时,该文件可能仍然无法访问。文章 501 调用目录执行遍历而不是运行文件夹。计算器的目录解释更加明确:读取列出条目,写入允许条目更改,执行允许进入目录并按名称访问其中的文件。模式 644 没有任何类的执行位。
将 644 与 755 进行比较。第一个渲染 rw-r--r--;第二个渲染 rwxr-xr-x。每个类都获得执行权,而只有所有者在两种模式下都保留写入。这种对比解释了所代表的权限差异。该页面不会检查文件、识别访问进程或测试祖先目录是否阻塞实际路径。
读取列表,执行遍历 - 目录 r 如何显示名称,而 x 让您按名称打开条目并统计它们
目录读取和执行是具有单独解释的单独标志。读取对应于列表条目。执行相当于进入目录并到达其中的指定文件。因此,一类在数值模型中可以只有一个而没有另一个。该矩阵通过在每个类别数字中将读取权重 4 放置在权重 1 处执行,从而保持这种区别可见。
将其他类数字从 4 更改为 5 是一个重点演示。符号三元组从 r-- 移动到 r-x,目录解释在保留列表的同时添加了基于名称的可达性。这是一个转换事实,而不是实时访问测试。所有权、身份、ACL 条目和强制策略不存在,因此计算器无法确定哪个类管理真正的请求。
四种组合 - r 不带 x、x 不带 r、两者和两者都不是,以及每种组合让用户实际执行的操作
四种读取和执行组合无需分配更广泛的系统行为即可表示。数字 4 为 r--,数字 1 为 --x,数字 5 为 r-x,数字 0 为 ---。对于目录目标,生成的散文将这些选定的位与列表和基于名称的可达性相关联。写入仍然是一个独立的标志,并且不被读取或执行所暗示。
使用矩阵一次隔离一个类,而不是将三位数模式视为标签。每当框发生变化时,页面都会重建整数,因此匹配的数字和符号位置会一起移动。它无法打开目录或尝试查找。这四种组合是精确建模的权限,而任何有效结果都取决于单独观察的目标上下文。
遍历适用于每个祖先 - 为什么路径上方的一个限制性目录会破坏对下面所有内容的访问
文章 501 指出缺少父目录执行权限是有效文件模式无法解决访问问题的原因。路径中的每个目录组件都有自己的模式问题。计算器可以独立解码每个提供的值,并显示所有者、组或其他执行是否存在。它无法行走路径或确定哪个类适用于请求的身份。
这使得祖先分析成为外部检查工作流程而不是计算器功能。如果父级报告为 750,则页面显示 rwxr-x---;如果另一个是 700,则显示 rwx------。这种差异是具体的,但在所有权和流程成员身份已知之前,无法得出结论。命令预览仍然无效,并且没有提供任何证据表明更改任一目录是适当的。
工作示例:修复 Web 根目录 — 检查服务文件中的每个目录并选择 755 或 750
对于 Web 根示例,逐个组件检查提供的模式,而不是为树指定一个值。模式 755 授予所有者 rwx 和组以及其他 r-x;模式 750 删除所有其他权限,同时保留组 r-x。转换器使这种差异变得可见。它无法识别 Web 进程、发现路径或选择需要遍历的类。
将所提供的文件与其目录分开检查。提供的文件模式(例如 644 )呈现 rw-r--r--,而选择作为目录的相同数字描述不同的操作并且缺少到处执行。这种目标敏感的措辞可以防止文件读取与目录遍历混淆。适用性仍然取决于实际所有权、进程身份、祖先以及页面中缺少的任何访问控制层。
递归做得正确 - 为什么树上的 chmod -R 644 是经典错误以及大写 X 或 find -type d 如何避免它
递归显示有意适度。选择它只会将 -R 插入生成的 chmod 命令中;计算器不会枚举树或区分文件和目录。在任何地方应用完整的 644 模式将使每个类中的目录执行清晰。该页面可以显示该结果,但它不实现大写 X 或文件类型选择工作流程。
生成的符号分配也保持固定。对于 644 ,它们是 u=rw,g=r,o=r,而不是有条件保留遍历的相对命令。 ls 样式字段显示 rw-r--r--,不应与该分配列表混淆。任何外部递归策略都必须在此路由之外进行验证,包括目标选择、链接处理以及放置在不同对象类型上的最终模式。
这不包括什么 - 目录上的粘性和 setgid 行为以及 ACL 掩码,这些内容在他们自己的帖子中介绍
Sticky、setgid 和 ACL 掩码与普通遍历问题是分开的。该计算器确实实现了 Sticky 和 setgid 表示以及目标敏感的解释,但本文的核心比较只需要读取和执行。 ACL 掩码根本不表示。正确的基本模式转换无法确定附加条目是授予还是限制特定身份的访问权限。
Umask 也在测试之外。该页面接受已完成的模式,而不是其之前的流程设置。如果出现带有 644 的目录,则转换器可以显示缺少的执行位置并为另一个提供的值生成候选命令。它无法说明为什么会出现这种模式,所有权是否错误,或者改变它是否解决了真正的失败。
要点:目录需要 x 才能使用 - 并且计算器将 644 和 755 之间的差异显示为 r-- 与 r-x
持久的结论是目录 x 在此计算器的解释中代表条目和基于名称的可达性。模式 644 显示组和其他的 r--,而 755 显示两者的 r-x 并添加所有者执行。同步的八进制域、符号域、矩阵和散文使得这种区别可以检查,而无需将任何一个熟悉的数字视为普遍正确。
在应用任何内容之前先进行算术之外的诊断。确认相关身份、所有权、每个祖先提供的模式以及目标类型。然后使用计算器验证任何已完成的候选值。它将拒绝格式错误的符号并准确显示哪些位发生了变化,但它永远不会打开路径、执行 chmod、评估应用程序策略或证明传统模式位是唯一的权威。