我有一个docker容器,当禁用selinux时,它运行良好;但是当启用selinux(即docker守护程序以--selinux-enabled启动)时,它无法启动。
因此,失败应该由selinux拒绝引起,但这不会在selinux审计日志中显示。当我使用“ausearch -m XXX | audit2allow ...”生成策略时,它不包含任何拒绝信息。
想知道如何获取容器内发生的selinux拒绝信息,以便我可以用它来生成我的策略文件?
ps:我检查了访问文件的标签信息,它们似乎是正确的,但访问(ls)被拒绝:
# ls -dlZ /usr/bin
dr-xr-xr-x. root root system_u:object_r:container_file_t:s0:c380,c857 /usr/bin
# ls /usr/bin
ls: cannot open directory /usr/bin: Permission denied
更多:所选答案回答了问题,但现在问题是审计日志显示访问权限为“unlabeled_t”,但正如“ls -dZ / usr / bin”所示,它是“container_file_t”。我把它放在一个单独的问题中:Why SELinux denies access to container internal files and claims them as "unlabled_t"?
该政策可能包含dontaudit规则。 Dontaudit规则不允许使用acecss,但禁止针对特定访问进行日志记录。
您可以使用semanage
禁用dontaudit规则:
semanage dontaudit off
解决问题后,您可能希望重新启用dontaudit规则以减少日志噪音。
也可以使用sesearch
搜索可能的dontaudit规则:
sesearch --dontaudit -t container_file_t