gpt4 book ai didi

c - 在 C 中测试 linux CAP_FOWNER 功能?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:07:32 25 4
gpt4 key购买 nike

调用之前 chmod()在目录上,如果调用者不拥有该目录,我想测试调用者是否拥有 CAP_FOWNER能力。

从搜索来看,我似乎应该能够测试 CAP_FOWNER通过调用能力 capable(CAP_FOWNER) -- 但是 capable()不在我的手册页中并且似乎没有被 <linux/capability.h> 导出.

capable() 的正确包含文件是什么? ,或者,测试 Linux 功能的最简单/最佳方法是什么?

最佳答案

我认为 capable()在内核源代码中可用,但不用于一般用途。如果您正在编写设备驱动程序或模块,那么它应该可用。

如果您正在编写用户空间程序,那么您可能能够使用 libcap 提供的函数;见 man capabilities(7) man libcap(3) .我建议 #include <sys/capability.h>并使用 cap_get_proc()可能还有 CAP_IS_SUPPORTED(CAP_FOWNER) .

如果这不好,明显的解决方法是尝试 chmod()在目录上并处理可能的故障。

关于c - 在 C 中测试 linux CAP_FOWNER 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43599961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com