2016-03-29 20 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機能を設定する必要があり、サブプロセス内の各能力セットがcapabilities(7)を見ないかを理解するために、effectiveセットにそれらを上げます。 Herepython-prctlの使用方法の例があります(シナリオは異なりますが、一般的な概要を示す必要があります)。

また、hereのような周囲機能の使用を検討することもできます。

関連する問題