文件系统权限实现

文件系统权限实现

我们有两种在操作系统中实现文件权限的方法:

  • 对每个文件使用权限列表
  • 为每个用户使用权限列表

各自的优点和缺点是什么? Unix 中使用哪一种?

我只能从复杂性的角度考虑,每个文件更改一组文件的权限会更慢。

答案1

由于权限需要传输数据(即,当您拔下 USB 驱动器并再次插入时,权限需要相同,即使您的计算机上没有所有文件的列表),您可以从逻辑上排除这两个选项之一。

此外,这也回答了缺点的问题。

答案2

从文件系统设计的角度来看,我不知道有任何文件系统曾经实现过用户列表及其对文件的关联权限。

Linux 支持多种文件系统布局、功能和特性的不同都忽略了多用户的概念,或者假设它们分为 3 类:所有者、组和每个文件的世界。

在这种情况下(个人用户不可知的文件系统),实现用户私有组,可以伪造某种基于每个用户的访问权限


最重要的是访问控制列表
Linux 支持的大多数文件系统都可以(可选地在 mkfs 时)提供对它们的支持,从而实现更细粒度的每个用户权限集。自从 :

  • 这只是一个选项,要与不支持 ACL 的 FS 保持兼容性,
  • ACL 是与某些系统资源关联的权限,文件系统管理的资源是文件(vg:不是用户)

在现有文件系统布局中向文件元数据添加额外位相当简单(与创建一些独立的用户列表的现有布局不同)。

相关内容