【发布时间】:2016-05-29 21:15:02
【问题描述】:
我处于一个困难的境地,我不知道一个进程需要哪些 linux 功能才能工作。 最好的方法是什么,或者有什么方法可以找出所需的上限?
我现在唯一能想到的就是使用 capsh 并将所有大写都放在一个进程上。然后该过程失败,我开始添加大写字母(通过删除 --drop=CAP_XZY)直到它起作用。
有更好的建议吗?
【问题讨论】:
-
我希望安装程序能够配置所需的功能。
-
如果您准确解释了该过程的作用...?
-
@Paul 好的,让我们做一个具体的例子:
# capsh --drop=cap_net_raw -- -c "ping localhost" ping: icmp open socket: Operation not permitted在这种情况下,我放弃了 ping 所需的上限,然后执行 ping。当然,它不起作用。鉴于这种情况,我如何找出 ping 需要 cap_net_raw?在某些情况下,流程执行需要特定上限的操作。我怎样才能知道是哪一个? -
程序是你写的吗?如果是这样,您应该知道它需要哪些功能。如果不是,那么这是一个系统管理员问题,而不是编程问题。
-
是的,要是有类似 selinux 的许可模式就好了。
标签: linux debugging linux-kernel linux-capabilities