简体中文

开发者工具 · Chmod 计算器

chmod 与 chown:为什么更改模式通常是错误的杠杆

· 为什么它很重要

chmod UNIX 访问控制

所有权与权限位显示为不同的 Unix 权限位图
原始 ToolAcre 矢量图

模式位仅表示与所有者和组相关的内容。这篇文章将这两个命令分开,并展示如何根据错误和进程标​​识来决定您真正需要哪一个。

两个命令,一个错误 - 权限被拒绝已在本月通过三个不同的 chmod 和 chown 行“修复”了 3 次

chmod 和 chown 处理不同的信息,即使两者都出现在权限错误附近。该计算器为所有者、组和其他以及特殊位建模权限位。它不接收当前所有者或组并且不执行所有权操作。因此,模式可以被正确地转换,而身份关系仍然未知且未经测试。

首先将问题分开。 “750 允许什么?”是可回答的:所有者获得 rwx,组获得 r-x,其他人什么也得不到。 “这个是谁的?”以及“哪个身份运行该流程?”需要外部证据。在解析恒等之前编辑模式可能会扩大错误的类;同步视图无法在 chmod 和所有权更改之间进行选择。

所有权优先,然后模式 — 内核如何在查看任何位之前为进程选择所有者、组或其他人

类别选择取决于身份,而计算器永远不会接收到身份。它的所有者、组和其他三元组是类别,而不是发现的帐户。它无法知道进程是否与所有者匹配、属于文件组还是属于其他组。它只是从一个整数呈现所有三个权限集;凭证需要外部检查。

因此,同一性是判断相关性的先决条件。在模式 640 下,所有者具有读写权限,组具有读取权限,其他没有任何权限。转换是确定的,但适用的三元组不是确定的。没有 UID、成员资格、容器映射或 ACL 进入该状态。首先确定这些事实,然后评估相应的位。

类别选择取决于身份,计算器不会接收到身份

所有权工具更改谁占据所有者或组关系,而 chmod 更改附加到这些类的权限。这个计算器只实现了 chmod 方面。它生成八进制或符号 chmod 文本,并且从不发出 chown 或 chgrp。它也不改变任何文件;路径字段仅构建引用预览以供外部审查。

扩展模式可以在不更正所有权的情况下公开其他类。将 750 与 757 进行比较:后者添加了其他读取和执行。计算器会显示该增量,但无法判断是否是另一个帐户受益或所有权导致了失败。在外部建立所有者、组和进程身份,然后仅向预期的类授予所需的位。

共享组模式 — chgrp 加上目录上的 setgid 加上 2775 作为两个都需要写入的用户的标准答案

共享组工作流程需要外部所有权工具和策略。预设 775 被标记为“与组共享”,因为组写入已启用。预设2775添加setgid,渲染rwxrwsr-x;对于目录,新文件继承目录的组。这些位描述并不构成完整的协作设计或部署建议。

该页面无法创建组、选择成员、运行 chgrp 或确定 2775 适合工作负载。它还无法检查默认 ACL、umask 或应用程序行为。将预设视为算术,而不是策略。在其他地方解决所有权和成员资格,然后比较候选模式,同时将实际的共享目录设计建立在环境证据的基础上。

共享组工作流程需要外部所有权工具和策略

在其他地方解析所有权后,检查目录模式 750。所有者接收读、写和执行;组接收读取并执行;其他人什么也没收到。组可以列出和输入但不能创建、重命名或删除条目。计算器渲染 rwxr-x--- 和 u=rwx,g=rx,o= 而不检查实际目录或帐户。

单独检查 640 是否有常规文件。它变成了 rw-r-----:所有者读取和写入,组读取,其他什么都没有。该页面显示这两个结果,但无法递归分配它们、识别部署帐户或选择服务组。声称适合 /var/www 需要此处缺少的工作量和身份证据。

工作示例:在其他地方解决所有权后检查 750 和 640

进程身份发现位于该浏览器工具之外。没有源调用 ps、读取服务配置、检查容器命名空间或查询帐户数据库。计算器无法识别运行帐户或补充组,因此无法确定哪个权限类别管理操作。该分类需要来自负责的运行时和文件系统环境的最新证据。

一旦从外部建立了身份,请准确审查相关类别。如果进程应使用组访问,则 640 允许该类读取但不能写入,而 660 添加组写入。该算术不是建议;正确的位取决于所需的操作。将发现和策略保留在转换器之外,用它来防止表示错误。

进程身份发现不在此浏览器工具之外

ACL 和容器 UID 映射。它的模型包括三个普通类和特殊位,但没有命名 ACL 条目、掩码或命名空间转换。当另一层限制访问时,一种模式可能看起来足够了,或者当 ACL 扩展它时,模式可能看起来很有限。仅提供的整数无法解决这两种可能性。

缺失的输入限制了诊断和修复。路由不能在 chmod、chown、ACL 更改或映射更正之间进行选择。它可以解码提供的基本模式并呈现特殊字母,例如 s、S、t 和 T。将其视为一个证据层,而不是有关第三方或容器访问的证明。

要点:在位之前决定恒等 — 然后使用 Chmod 计算器使位与恒等所需的宽度完全相同

在位之前确定身份。模式通过所有者、组和其他类来工作,但计算器知道权限而不是占用它们的帐户。外部检查确定所有权和进程身份后,输入候选者并验证每个预期的读、写和执行标志。在命令离开浏览器之前比较附近的值会暴露意外的扩大。

最终输出仍然是提案。该页面拒绝格式错误的输入,同步八进制和符号形式,解释文件和目录含义,引用路径并生成 chmod 文本。它无法执行命令、更改所有权、评估 ACL、检查策略或测试应用程序。确定身份后,验证负责系统上提出的任何更改。