Я пытаюсь развернуть jupyterhub на centos 7 с включенным selinux. Я выбираю Sudospawner для создания новых серверов ноутбуков jupyter. Когда я пытаюсь войти в jupyterhub, selinux регистрирует следующую ошибку: процесс не запускается:
python3.4[17888]: pam_selinux(login:session): Error sending audit message.
python3.4[17888]: pam_keyinit(login:session): Unable to change GID to 1000 temporarily
python3.4[17888]: pam_keyinit(login:session): Unable to change GID to 1000 temporarily
dbus[633]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.1187" (uid=1003 pid=17888 comm="/usr/bin/python3.4 /usr/bin/jupyterhub ") interface="org.freedesktop.login1.Manager" member="CreateSession" error name="(unset)" requested_reply="0" destination="org.freedesktop.login1" (uid=0 pid=632 comm="/usr/lib/systemd/systemd-logind ")
dbus-daemon[633]: dbus[633]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.1187" (uid=1003 pid=17888 comm="/usr/bin/python3.4 /usr/bin/jupyterhub ") interface="org.freedesktop.login1.Manager" member="CreateSession" error name="(unset)" requested_reply="0" destination="org.freedesktop.login1" (uid=0 pid=632 comm="/usr/lib/systemd/systemd-logind ")
python3.4[17888]: pam_systemd(login:session): Failed to create session: Access denied
Я получаю эту ошибку, даже когда запускаю jupyterhub как root. Когда я отключаю selinux, все работает нормально.
Как мне настроить selinux, чтобы Sudospawner мог устанавливать uid и запускать ноутбук-сервер в контексте пользователя?
Первое, что вам нужно сделать, это собрать все соответствующие сообщения SELinux. Переведите вашу систему в разрешающий режим
setenforce 0
Используйте приложение как обычно, а затем просмотрите сообщения, связанные с SELinux, в /var/log/audit/audit.log*
grep denied /var/log/audit/audit.log*
. Вы можете передать результаты в различные утилиты, чтобы получить представление о том, что требуется
grep denied /var/log/audit/audit.log* | audit2why
Анализ, который может быть полезным. Он может предложить вам настроить различные логические значения. Вы также можете просмотреть результаты через audit2allow
grep denied /var/log/audit/audit.log* | audit2allow
. Это также скажет вам, что вам нужно сделать. Вы можете создать локальный модуль
grep denied /var/log/audit/audit.log* | audit2allow -M local-module
, а затем использовать его
semodule -i local-module.pp
. Не забудьте вернуть SELinux в принудительное исполнение.