我想它会标记它启动的容器,但是从 的输出来看ps -eZ
,我看不出任何区别。例如,容器etcd
有相同的域,不管守护进程有没有这个选项:
system_u:system_r:container_runtime_t:s0 16212 ? 00:00:00 dnsmasq-nanny
Run Code Online (Sandbox Code Playgroud)
但它确实阻止了我的容器 (k8s-dns-dnsmasq-nanny-amd64:1.14.8) 启动,并且拒绝日志显示对/etc/localtime
/usr/sbin/dnsmasq 的访问被拒绝。我认为这些是容器文件系统中的文件。如何编写 SELinux 策略以允许访问容器文件系统?
我使用以下命令生成策略文件:
ausearch -ts today |audit2allow -M sample
Run Code Online (Sandbox Code Playgroud)
它将生成两个文件:sample.te 和 sample.pp
sampel.te 包含以下几行:
allow container_t unlabeled_t:dir { add_name create remove_name rename write };
Run Code Online (Sandbox Code Playgroud)
我想编辑此行以添加“读取”权限:
allow container_t unlabeled_t:dir { add_name create remove_name rename write read};
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将 .te 文件编译成 .pp 文件,以便我可以应用它(稍后在其他节点中也使用)