systemd-nspawn: フォルダのファイルシステム権限バインディング

systemd-nspawn: フォルダのファイルシステム権限バインディング

私が持っているもの:

GentooホストとUbuntuコンテナ。

私が望むもの:

ホストからコンテナにマウントして/home正常に使用します。

私は何をしていますか:

フラグを使用してコンテナを起動します-U --bind=/home

私が得るもの:

コンテナに私の/homeディレクトリがありますが、誰もなし:グループ所有者なしとしてマウントされました。

scratch:5:0:/home/vkirsano> ll /home 
total 24
drwxr-xr-x  3 nobody nogroup  4096 Sep 19 17:39 krokoziabla
drwx------  2 nobody nogroup 16384 Oct 20  2016 lost+found
drwxr-xr-x 56 nobody nogroup  4096 Sep 20 22:15 vkirsano

したがって、私は実際にそのディレクトリの内容に対する読み取り専用アクセス権しか持っていませんが、/homeこれは私が望むものではありません。vkirsanoホストと同じUID:GIDを使用してコンテナにユーザーを作成したとします。したがって、systemd-nspawnがディレクトリをバインドするときにファイルの所有権に関する元の情報のみを保持したいと思います。

私が何を求めているの?

フォルダをマウントする一般的な方法は何ですか(/homeコンテナ内で正常に機能する機能を維持するなど)。

答え1

AFAIKは-U主にrwと互換性がありません--bind。 ~から文書:

このオプションを --private-users と一緒に使用すると、結果のマウントポイントはnoneユーザーが所有します。これは、マウントとそのファイルとディレクトリがコンテナに存在しないため、ワイルドカードUID 65534(nobody)の下に表示される接続されているホストユーザーとグループが所有しているためです。これらのバインドマウントが作成されたら、--bind-ro =を使用して読み取り専用にすることをお勧めします。

私はnspawnを使用してUbuntuベースのコンテナを作成し、Arch LinuxホストでYoctoを構築します。 Archカーネルが有効になったら、私のファイルでそれを設定するCONFIG_USER_NS=y必要があります。 (また、ホストとコンテナの両方が同じUIDを持つユーザーを追加したため、コンテナとホストの両方が同じ方法でアクセスできます。) PrivateUsers=off/etc/systemd/nspawn/foo.nspawnBind=

関連情報