当前位置:嗨网首页>书籍在线阅读

08-ACL在实现方面的限制

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

17.7 ACL在实现方面的限制

各类文件系统都对一ACL中所含记录的条数有所限制。

  • 对于ext2、ext3以及ext4文件系统,某文件所含所有ACL记录的总和受制于如下要求:该文件扩展属性的所有名称与值所占字节必须位于同一逻辑磁盘块之内(见16.2节)。每条ACL记录需占8字节,因而一文件所含ACE的最大条数会略少于块大小的1/8(因为ACL的扩展属性名称也有一定开销)。因此,大小为4096字节的块最多允许500条左右的ACE。(2.6.11版本之前,内核要求ext2和ext3文件系统中文件ACL的记录总数不得超过32条。)
  • 对于XFS文件系统,每一ACL的记录数上限为25条。
  • 对于Reiserfs和JFS文件系统,ACL最多可含8191条记录。之所以如此,是由于VFS要求扩展属性的值大小不得超过64KB(见16.2节)。

写作本书时,Btrfs文件系统将ACL所含记录的条数限制在500条左右。但鉴于该文件系统的开发极其活跃,故而这一限制随时可能发生变化。

尽管上面提及的文件系统大多允许一ACL包含大量记录,但出于以下原因,还是应当避免:

  • 冗长的ACL将增加维护工作的复杂程度,且容易出错:
  • 扫描ACL寻找匹配记录(在执行组ID检查时,还将匹配多条记录)所需的时间,将随记录条数的增长而增长。

通常的做法是:在系统组文件(8.3节)中定义适当的组,并在ACL中运用起来,从而将文件ACL的记录条数保持在一个较低的合理水平。