コマンドに必要な機能をどのように決定しますか?

コマンドに必要な機能をどのように決定しますか?

Dockerコンテナでコマンドを実行すると、次のようになります。

# ip netns exec 9ee961d90990 ifconfig
setting the network namespace "9ee961d90990" failed: Operation not permitted

すでに追加した拡張機能を使用してコンテナを直接起動できますが、net_adminこのコマンドを実行するために必要なシステム機能を確認する方法はありますか?

これを行うには、コンテナを起動し、dockerに関連するすべてのセキュリティを踏むことが可能です--privilegedが、可能であればそうしないことをお勧めします。これで上記のコマンドが成功します。

ベストアンサー1

~によるとsetns(2) マニュアルページCAP_SYS_ADMINターゲットネットワークの名前空間に参加する必要があります。ただし、setns()ファイル記述子を使用して作業した後は、追加機能が必要になることがあります/run/netns/...。このネットワーク名前空間をどのように作成したかを知らなかったので、次のように作成されたとします。ip netns add ...したがって、バインドマウントされたネットワーク名前空間は以下を指します。nsfs(名前空間ファイルシステム)とにかく。

これは通常/run/netns/...ルート領域であるため、CAP_DAC_OVERRIDEまたはこれが必要な場合がありますCAP_DAC_READ_SEARCHFunction(7) マニュアルページ。また、ptrace機能により、CAP_SYS_PTRACE多くのinodeへのアクセスがさらに制限される可能性があります。/proc

おすすめ記事