是否存在针对 Linux 内核的简单且集成(即嵌入到文件系统中)的 ACL 补丁?
问题很简单:我需要比 Linux 上经典的“rwx”chmod 更灵活、更先进的东西。
我的要求是:
- 有更多碎片化的限制:
- 至少允许用户删除,但不允许创建
- 反向:允许创建和追加,但不允许删除
- 对除超级用户和所有者/组之外的任何人隐藏文件
- 最好将它们分成单独的权限标志
- 文件和目录的权限分离
- 对附加到文件/目录的更高级控制
- 超出标准用户:组模型的大量权限条目(如 POSIX ACL 那样)
- 集成到文件系统中(可能通过 xattrs)
- 不需要复杂且臃肿的程序和安全框架(我已经浏览过 grsecurity 并且我不喜欢它)
- 从用户空间管理它们的统一工具
原因是我通常构建的许多高级文件服务器变得非常有限或不安全,因为只有如此有限的 POSIX ACL 存在,它只扩展了 inode 上的一些“rwx”条目。
此处不适用的内容:
- 任何 Linux 内核 LSM(SELinux 等)
- 查特尔/lsattr
- 网络安全
作为最后的手段,如果没有任何包/内核补丁提供此类功能,那么我将被迫开始破解我自己的包/内核补丁。
答案1
没有什么叫做POSIX ACL。有些人称之为什么POSIX ACL是 1993 年的提案草案,于 1997 年被撤回。
然而有一个 ACL 标准:NFSv4 ACL也称为NTFS ACL。
NFSv4 ACL现在 Solaris、Mac OS X、FreeBSD 和 AIX 都支持,甚至 Linux 最近也开始实现它们。在 Linux 上,它们被称为“richacls”。
NFSv4 ACLZFS 以及 OS X 和 AIX 的文件系统本身支持。
看http://schillix.sourceforge.net/man/man1/chmod.1.html进行描述。
新的 ACL 标准并不简单,但它实现了您希望看到的内容。
Linux 上的 NFSv4 ACL 实现是由负责撤回草案实现的同一个人完成的。不幸的是,在 Linux 上,通常默认情况下没有安装 ACL 代码。另请注意,虽然 Solaris 支持最多 1024 个 ACL 条目,但 Linux 的限制要小得多。 Win-DOS 上的 NTFS ACL 最多支持 1820 个条目。
您可能会感兴趣,去年,SuSE Linux 没有工作库支持,因此,我还无法添加 Linux NFSv4 ACL 支持,star
而 Solaris、OS X 和 FreeBSD 都存在这种支持。
请注意,只有损坏的 ACL 支持gtar
,因此如果您喜欢使用 ACL,无论如何都需要使用star
。
PS 如果有人发现 Linux 系统具有可用的 NFSv4 acl,请给我留言。我有兴趣添加 Linux NFSv4 支持,尽管它们似乎使用不兼容的库接口。