Это связано с этим вопросом: Как проверить отказ selinux внутри контейнера докера
У меня есть контейнер, который не работает после принудительного применения 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 read "unlabeled_t" dir), хотя оно работает.
Итак, я хочу знать, почему каталог / app (и многие другие) внутри контейнера, который SELinux считает unlabeled_t, и как я могу решить эту проблему?