如何比较 POSIX 个 ACL?
How to compare POSIX ACLs?
给定两个 acl_t
值,我如何比较它们?也就是说,我需要一种方法来确定一个 acl_t
是否比另一个具有更多或更少的条目,或者给定的 acl_entry_t
是否包含与另一个不同的权限集。
Linux 确实有非标准的 acl_cmp
函数。我需要的基本上是此函数的 POSIX 兼容变体。
到目前为止我想到的唯一想法是比较 ACL 的文本表示:
strcmp(acl_to_text(acl1), acl_to_text(acl2))
还有更高效的解决方案吗?
由于 acl_t
是不透明类型,客户端代码无法实现 acl_cmp
。此外,使用 strcmp(acl_to_text(acl1), acl_to_text(acl2))
也不能依赖,因为 ACL 可能是等效的,但排序顺序不同。
我得出的结论是,这个函数和其他一些函数应该最终成为标准,但不幸的事件方式导致了它的废弃状态。
给定两个 acl_t
值,我如何比较它们?也就是说,我需要一种方法来确定一个 acl_t
是否比另一个具有更多或更少的条目,或者给定的 acl_entry_t
是否包含与另一个不同的权限集。
Linux 确实有非标准的 acl_cmp
函数。我需要的基本上是此函数的 POSIX 兼容变体。
到目前为止我想到的唯一想法是比较 ACL 的文本表示:
strcmp(acl_to_text(acl1), acl_to_text(acl2))
还有更高效的解决方案吗?
由于 acl_t
是不透明类型,客户端代码无法实现 acl_cmp
。此外,使用 strcmp(acl_to_text(acl1), acl_to_text(acl2))
也不能依赖,因为 ACL 可能是等效的,但排序顺序不同。
我得出的结论是,这个函数和其他一些函数应该最终成为标准,但不幸的事件方式导致了它的废弃状态。