带有 selinux 的 Jupyterhub

带有 selinux 的 Jupyterhub

我正在尝试在启用 selinux 的 centos 7 上部署 jupyterhub。我选择 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

即使我以 root 身份启动 jupyterhub,也会收到此错误。当我禁用 selinux 时,一切正常。

如何配置 selinux 以便 sudospawner 可以设置 uid 并在用户上下文中启动笔记本服务器?

答案1

您需要做的第一件事是收集所有相关的 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 重新设置为强制执行。

相关内容