既然有 ACL,那么 Windows 上的文件所有者又有什么意义呢?

既然有 ACL,那么 Windows 上的文件所有者又有什么意义呢?

我有 Linux 背景,习惯于一个文件有一个所有者和一个所有者组。可以分别为所有者、组和其他人设置访问权限,仅此而已。

现在在(基于 NT 的)Windows 上,情况有些不同,因为 Windows 使用 ACL。这意味着,我可以拥有任意数量的权限列表,而不是拥有三个权限列表(所有者、组、其余)。

到目前为止,这很有道理。但是,为什么 Windows 仍然有文件所有者的概念?在我看来,有了 ACL,就不再需要“文件所有者”,因为所有访问都可以通过 ACL 进行配置。

那么为什么现代 Windows 仍然使用文件所有权?谁拥有文件有什么区别?只要两个文件具有相同的 ACL,文件所有权就不重要 - 还是有区别?

答案1

首先,Linux拥有 ACL –POSIX ACL,允许为任意数量的用户和组设置权限位。(补丁程序丰富的ACL,与NFSv4和WinNT非常相似的ACL,已被多次提交,但尚未合并。)

所有权可以用作一种安全逃生手段——所有者始终可以更改对象的 ACL,即使更改被拒绝,例如,如果有人意外删除了所有 ACL 条目或拒绝了所有人的所有更改。(在 Linux 上仅有的所有者或超级用户可以更改文件的 ACL,因为没有单独的“更改 ACL”权限。)

在 Windows NT 和 Linux 上,文件所有权的另一个用途是确定如果使用磁盘配额,文件应该依靠谁的配额。

答案2

如果从管理员的角度来看,则会有很大的不同。

在 Linux 上,root 可以直接执行所有操作 - 该帐户隐式拥有文件系统及其他所有对象的所有权限。

在 Windows 上,管理员默认没有权限执行所有操作 - 只有当您是想要更改的对象(文件、文件夹注册表项等)的所有者时才有权限执行所有操作。

以文件夹为例,管理员需要更改文件权限。如果管理员没有权限更改文件夹的安全设置,则他需要先接管文件夹的所有权,然后才能访问/更改它。

更新:

此功能非常重要,因为在 ACL 控制的环境中,可能会出现文件 ACL 为空的情况,这意味着没有人可以访问(默认拒绝原则)。在这种情况下,接管所有权是获取访问权限或删除文件的唯一方法。

答案3

对象所有者始终可以更改 ACL。

相关内容