Unix 文件权限系统与 Windows 有何不同?

Unix 文件权限系统与 Windows 有何不同?

相关问题:Linux 文件系统/组织与 Windows 有何不同?

我有点熟悉权限在文件和目录方面的工作原理 - 每个条目都有一个ownergroup属性,代表文件的所有者和所有者所属的组(如果我错了,请纠正我)。

这与 Windows 上 NTFS 文件系统中的权限组织有何不同? Unix的权限系统相对于NTFS有什么优势?

答案1

NTFS 具有 Windows ACE。 Unix 在每个文件上使用“模式位”。

在 NTFS 上,每个文件都可以有一个所有者以及零个或多个 Windows 访问控制条目 (ACE)。 ACE 由主体(用户和组是主体)、一组操作(读取、写入、执行等)以及是否允许或拒绝这些操作组成。文件可以有许多 ACE。 Windows 中除文件之外的其他对象也可以具有 ACE,例如注册表项、打印机对象和其他对象。发生文件操作时会考虑所有 ACE。拒绝优先于允许。

Windows ACE 支持继承,您可以在其中为目录设置 ACE 并将其自动传播到较低级别的目录。

Unix 中的文件有一个所属用户 (owner) 和一个所属组 (owner-group)。有三个固定的“主体”,即所有者、所有者组的成员以及其他所有人(也称为世界)。对于每个主体,都有三个“位”,涵盖读、写和执行能力。 (这些对于目录和文件来说具有不同的含义,请参阅)。这些位决定谁可以执行哪些操作。这称为文件模式并内置于文件中(没有单独的 ACE)。

大多数时候,您关心的是“世界”权限,即将“世界”的所有三位都设置为 0 意味着非所有者或组所有者的任何人都无法对该文件执行任何操作。 Unix 权限仅适用于文件系统,但由于大多数对象显示为文件,您可以使用权限来限制对磁盘、打印机等的访问。Unix 权限更简单,但更“粗略”。 Unix权限不支持继承,并且不会影响较低级别的目录,除了目录的执行权限(我认为),这会导致新创建的文件承担目录的权限(但不会影响当前创建的文件)。

传统上,Unix 文件有一个所有者和一个所有者组。 Linux 有一些扩展可以以与 Windows 类似的方式将 ACE 添加到文件中。

Unix 的优点只是更简单的系统通常更容易理解和安全,并且速度更快,因为文件系统在打开文件时除了 inode 之外还不必获取 ACE。

答案2

完全不同的一件事是“可执行”是 Linux/Unix 下的一种权限,而不是基于文件名或扩展名。

这是相对于 Windows 的一个优势,因为在 Linux 上,您可以通过删除可执行权限来确保某些内容不会被执行。魔法扩展根本不重要。这可能就是传统文件病毒在 Unix 和 Linux 上毫无进展的原因之一。

相关内容