PID 1名前空間を再入力してください。

PID 1名前空間を再入力してください。

PID名前空間を入力しようとしていますが、PID 1を持つプロセスを使用してCLONE_NEWPID検索します。Invalid argumentエラーが発生し続けます。

つまり、clone()フラグを使用してCLONE_NEWPID子プロセスを複製しました。子プロセスは/proc/1/ns/pid読み取り用に開き、上記のsetns()記述子を使用して実行を試みます。setns()失敗して表示されますInvalid argument

完全なプログラムコード:https://gist.github.com/k-popov/ef87076785d8264ac66f

PID 1の名前空間や親の名前空間に入ることを防ぐいくつかの(セキュリティ?)メカニズムがありますか?ユーザーの名前空間のメカニズムがあることを知っていますが、PID 1はどうですか?

ベストアンサー1

これはセキュリティ機能です。PIDネームスペースのマニュアルページ

プロセスは自由に子PID名前空間に入ることができますが(たとえば、CLONE_NEWPIDでsetns(2)を使用するなど)、他の方向に移動することはできません。つまり、プロセスは親名前空間(親、祖父母など)に入ることはできません。 PID名前空間の変更は一方向の操作です。

おすすめ記事