/dev/fb1
ホストのバインディングを使用してsystemd-nspawnコンテナを作成しました/dev/fb0
。PrivateUsers=off
.nspawn設定ファイルに設定しましたが、コンテナのファイル所有権と権限がホストと同じように見えます/dev/fb0
。/dev/fb1
ホストコンピュータで実行するとcat /dev/urandom >/dev/fb1
期待どおりに動作します(「デバイスに残りのスペースがありません」エラー)、コンテナを起動してrootとしてログインすると(使用machinectl
)cat /dev/urandom >/dev/fb0
「操作は許可されていません」というメッセージで失敗します。また、を使用して書き込みしようとしましたが、dd -if /dev/urandom -of /dev/fb0
「dd: '/dev/fb0'を開くことができませんでした:操作は許可されていません」というエラーが発生しました。chmod
などのルートアクセスを必要とする他のコマンドをテストしましたが、chown
コンテナのrootユーザーはこれらのコマンドを実行できます。
/dev/fb1
selfにバインドすると(つまり、単にBind=/dev/fb1
)書き込み操作が行われます。はい許可される。
コンテナ内で書き込み用にファイルを開くことができない理由を知っている人はいますか?
.nspawn 構成は次のとおりです。
[Exec]
Capability=CAP_SYS_ADMIN
PrivateUsers=off
[Files]
Bind=/dev/fb1:/dev/fb0
Bind=/srv
以下は、コンテナ用のsystemd-nspawnサービスオーバーレイファイルです。
[Service]
DeviceAllow=/dev/fb0 rw
DeviceAllow=char-input rw
DeviceAllow=char-drm rw
(この構成の一部は不要であると確信しています。問題を解決するために私が考えることができるすべてを投げただけです。)