Почему SELinux запрещает доступ к внутренним файлам контейнера и называет их «unlabled_t»? - PullRequest
0 голосов
/ 19 сентября 2018

Это связано с этим вопросом: Как проверить отказ 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, и как я могу решить эту проблему?

...