Я новичок в SElinux, поэтому мало знаю, как им пользоваться. Я хочу запустить свой Fedora Server, используя общий ресурс samba (уже настроенный и работающий), и настроил контейнер podman, установив тот же каталог. Но пока SElinux включен, контейнер не может получить доступ к смонтированному каталогу. Выключение SElinux (setenforce 0
) "решает" это.
Итак, в настоящее время я пробовал использовать public_content_rw_t
в этом каталоге, но все еще не работает.
# first try
$ semanage fcontext -a -t samba_share_t "/srv/downloads(/.*)?"
$ restorecon -Rv /srv/downloads
# second try
$ semanage fcontext -m -t public_content_rw_t "/srv/downloads(/.*)?"
$ restorecon -Rv /srv/downloads
В обоих случаях контейнер podman не может получить доступ к одному и тому же каталогу. SElinux предотвращает это (логи: setroubleshoot[1232603]: SELinux is preventing java from write access on the directory /srv/downloads
). Например, используя: podman exec -it $CONTAINER ls -l /downloads
(установлен /srv/downloads:/downloads
с rw).
Я хочу запустить свой сервер с SElinux. Что мне нужно настроить, чтобы оба процесса могли использовать один и тот же каталог?
Поскольку вы новичок в SELinux, есть больше инструментов, которые помогут вам в этом разобраться, которые я нашел только на прошлой неделе. Отправной точкой является Вот. В основном audit.log с audit2why и audit2allow. Я устанавливаю значение 0, cp / dev / null через audit.log, запускаю неудачные команды (которые успешно выполняются в разрешающем режиме, но все еще регистрируются в журнале аудита), затем сохраняю журнал и анализирую, как показано по ссылке выше. Я использовал этот процесс в течение последних нескольких дней, чтобы создать настраиваемую политику для api-интерфейса flask / apache, на котором выполняются подпроцессы python. Так что это не конкретный ответ, но процесс должен привести вас к решению, как и я.