問題タブ [linux-namespaces]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - cap_setuid 機能が設定されたアプリから書き込むために uid_map を開くことができません
user_namespaces(7)の例をいじっていると、奇妙な動作に遭遇しました。
アプリケーションの機能
アプリケーションuser-ns-ex
は CLONE_NEWUSER を指定して clone(2) を呼び出し、新しいユーザー名前空間に新しいプロセスを作成します。親プロセスはマップ ( 0 1000 1
) を /proc//uid_map ファイルに書き込み、(パイプを介して) 処理を続行できることを子プロセスに伝えます。次に、子プロセスが実行しますbash
。
ここにソースコードをコピーしました。
問題
機能を設定しないか、すべてを設定すると、アプリケーションは書き込み用に /proc//uid_map を開きます。
set_capuid、set_capgid、およびオプションで cap_sys_admin のみを設定すると、open(2) の呼び出しが失敗します。
上限を設定:
実行してみてください:
そして今、成功したケース:
機能なし:
正常に実行されます:
私はマンページで理由を見つけようとしており、さまざまな機能で遊んでいますが、現時点ではうまくいきません。私を最も困惑させているのは、アプリケーションがより少ない機能で実行され、より多くの機能で実行されないことです。
誰かが私を助けて問題を明確にすることができますか?
kvm - kvm/libvirt および linux-namespaces に関する問題
Ubuntu 16.04 LTS で kvm/libvirt 仮想化とネットワーク名前空間に問題があります。私がやりたいのは、次のフェンスで囲まれたセットアップです。
- 1 つのネットワーク名前空間 (フェンス)
- 名前空間内の 2 つの Linux ブリッジ。
- 各ブリッジには独自の IP ネットワークがあります。
- これら 2 つのブリッジ間の IP 転送を許可します。
- 2 つの VM。VM1 は bridge1 に接続され、VM2 は bridge2 に接続されています。
- VM1 を VM2 に ping します。
意図は、外の世界と通信するホストの残りのネットワーク設定から完全に独立した私のラップトップで小さなラボを取得することです。ネットワーク名前空間がこれを達成する方法であるように思えますが、いくつかの障害にぶつかりました.
これまで、次のように設定しました。
名前空間内の ips への ping は成功します。IP 転送が有効になっています。名前空間の外では、ブリッジは表示されません/存在しません。今度は、libvirt のブリッジを公開する時が来ました。しかし、うまくいきません。このxmlで試してみました
および適切な virsh net-define および net-start コマンド。VM の xml ファイルを編集して VM を起動しましたが、結果は次のようになりました。
明らかに、libvirt は名前空間 internalSpielwiese で iBr0 を見つけられませんでした。いくつかのグーグル検索の後、libvirt はネットワーク名前空間を処理できないという印象を受けました。それとも方法はありますか?どのように?
bpf - eBPF: Linux 名前空間での実行
したがってBPF
、プログラムはカーネル空間内で実行されるため、カーネル エンティティです。一方、コンテナーとも呼ばれる Linux 名前空間は、アプリケーション レベルの分離を提供します。この場合、それらはすべてホストのカーネル、カーネル モジュールなどを共有します。
bpf
ホスト上でも見えるようになるので、コンテナごとにプログラムをロードするのは意味がないと思いますか?
bpf
したがって、プログラムはホストとモニター/マングルなどにロードされると思います。名前空間との間のパケット。struct sock
名前空間 ID に関する情報があるとすれば、特定の種類のプログラムだけがbpf
それを実行できると思いますか?