2016-03-29 54 views
3

我想爲我的python應用程序中的某個子進程設置CAP_NET_ADMIN功能。我嘗試了很多,但我沒有成功,因爲沒有可用的例子,這讓我很容易理解。使用Python設置Linux功能的問題

我所做的是我安裝了python-prctl(1.6.1)和prctl(1.0.1),建議使用pip,並在創建子進程之前將prctl.capbset.drop("setgid", prctl.CAP_NET_ADMIN)應用到我的應用程序中。但是,似乎即使capbset也無法識別。

在子進程中,我想用scapy來嗅探網絡。

回答

0

你試圖做的是從能力邊界集中刪除CAP_NET_ADMIN,這不是實現你指定的方法。

相反,你應該在父進程設置inheritable能力,並且在子他們提升到effective集,以瞭解每個能力組不看capabilities(7)Here你有一個關於如何使用python-prctl(不同的場景,但應該給你一個通用的概述)的例子。

您也可以考慮使用here所述的環境功能。