我如何说服 apparmor 允许此操作?
[28763.284171] type=1400 audit(1344273461.387:192): apparmor="DENIED"
operation="mount" info="failed type match" error=-13 parent=7101
profile="lxc-container-with-nesting" name="/" pid=7112 comm="su"
flags="ro, remount, bind"
基本上,我正在尝试以只读方式重新挂载根文件系统(在嵌套在 LXC 容器中的挂载命名空间中)。该设置是一些绑定挂载,结尾是:
mount --rbind / /
mount -o remount,ro /
我尝试了以下所有组合:
mount options=(ro, remount, bind) / -> /,
我想到了。添加规则audit mount,
会显示我执行的所有其他挂载,但不会在 / 上运行。我能得到的最接近的结果是,mount -> /,
在我看来,这太松散了。甚至mount / -> /,
拒绝重新挂载(而允许第一个绑定挂载)。
答案1
按照:http://lwn.net/Articles/281157/
Bind 具有与原始选项相同的选项,因此您只能绑定安装 / 的 rw 副本。除非您将整个 / 重新安装为 ro。我猜您不想这样做。
需要分两步进行。
mount --bind /vital_data /untrusted_container/vital_data
mount -o remount,ro /untrusted_container/vital_data