无法写入 systemd-nspawn 容器中的 /dev/fb0

无法写入 systemd-nspawn 容器中的 /dev/fb0

我创建了一个 systemd-nspawn 容器,其中/dev/fb1来自主机的绑定为/dev/fb0.我已经PrivateUsers=off在 .nspawn 配置文件中进行了设置,/dev/fb0容器中的文件所有权和权限似乎与/dev/fb1主机上的相同。在主机上运行cat /dev/urandom >/dev/fb1按预期工作(“设备上没有剩余空间”错误),但如果我启动容器,并以 root 身份登录(使用machinectlcat /dev/urandom >/dev/fb0失败,并显示“不允许操作”。我还尝试使用 写入它dd -if /dev/urandom -of /dev/fb0,这给出了错误 'dd: 无法打开 '/dev/fb0': 不允许操作'。我已经测试了需要 root 访问权限的其他命令,例如chmodchown,并且容器中的 root 用户能够运行这些命令。

如果我绑定/dev/fb1为自身(即只是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

(我确信其中一些配置是不必要的——我只是投入了我能想到的一切来解决我的问题。)

相关内容