【问题标题】:Mac OS: Print the Access Control List (ACL) in CMac OS:在 C 中打印访问控制列表 (ACL)
【发布时间】:2019-05-06 20:42:27
【问题描述】:

我想打印像“ls”命令中的 on 这样的 ACL 文本,但我不知道如何获得这些权限,有什么线索吗?

【问题讨论】:

  • 在命令行中,键入“man acl”以查看 ACL 例程的手册页。比我更熟悉他们的人可能会进一步回答,但这可以让你开始。有几个例程可以从文件系统对象中获取 ACL,还有一个名为 acl_to_text 的例程,它似乎对生成描述 ACL 的文本很有帮助。

标签: c macos permissions acl


【解决方案1】:

以下是在 C 代码中获取文件 (POSIX) ACL 并打印它们的示例:

const char *path = "/path/to/file";
acl_t acl = acl_get_link_np (path, ACL_TYPE_EXTENDED);
if (acl == NULL) {
    printf("Error: %s\n", strerror(errno));
} else {
    const char *desc = acl_to_text (acl, NULL);
    printf("%s\n", desc);
    acl_free ((void*)desc);
}
acl_free (acl);

但是,该组将显示为 UUID,而不是诸如“每个人”之类的名称。

如果您想自己解析 ACL 而不是获取默认打印输出,请在终端中键入 man acl

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多