1

我正在尝试分析与我的 CentOS 服务器相关的功能。我有ps aufxwwwZ命令的输出和每个进程的内容/proc/$pid/status。这是我要分析的服务器配置转储的一部分。

我知道我可以从/proc/$pid/status(以 ^Cap 开头的行)获得能力。我可以capsh --decode用来获得人类可读的表格。但是,我想在 python 中专门实现它作为更大脚本的一部分。

如何将功能掩码转换为人类可读的功能列表,而不必强制用户安装特定工具和启动subprocess东西?

我试图了解如何通过阅读linux/capability.h来完成解析。有趣的部分:

#define CAP_TO_INDEX(x) ((x) >> 5)        /* 1 << 5 == bits in __u32 */
#define CAP_TO_MASK(x)  (1 << ((x) & 31)) /* mask for indexed __u32 */

因此,对于cap_net_admin在此头文件中定义的for ,12我使用CAP_TO_MASK((12) & 31)给出 4096 :

printf("%d", 1 << ((12) & 31));

但是,这不是我观察到的这种特定功能,/proc/pid/status其中 is 1000

有没有更直接的转换过程?

4

0 回答 0