为什么SELinux拒绝访问容器内部文件并将其声明为“ unlabled_t”?

时间:2018-09-19 03:03:14

标签: docker access-denied selinux

这与此问题有关: How to audit the selinux denial inside a docker container

在执行selinux后,我有一个无法使用的容器,“ ls / app”命令由于访问被拒绝而失败:

# docker exec -it XXX ls -lZ /app
ls: cannot open directory /app: Permission denied

第一个问题是未登录selinux拒绝消息以访问我的容器,关闭“ dontaudit”后,会出现selinux拒绝信息,但它表明容器正在尝试“读取”“ unlabeled_t”,

type=AVC msg=audit(1537323105.938:115360): avc:  denied  { read } for  
pid=11891 comm="ls" path="/app" dev="vdb" ino=917696
scontext=system_u:system_r:container_t:s0:c136,c536
tcontext=system_u:object_r:unlabeled_t:s0 tclass=dir

但根据以下信息,它属于“ container_file_t”

# docker exec -it XXX ls -dZ /app
       drwxr-xr-x. root root system_u:object_r:container_file_t:s0:c136,c536 /app

我认为添加规则(container_t读取“ unlabeled_t”目录)是不合适的,尽管它确实可以工作。

所以我想知道为什么SELinux将容器中的“ / app”目录(以及许多其他目录)视为“ unlabeled_t”,以及如何解决该问题?

0 个答案:

没有答案