私が持っているもの:
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.nspawn
Bind=