我有安装了 Guix和手动安装捆绑的 SELinux 策略。但根据里卡多·乌尔穆斯的说法,截至 2021 年 6 月 30 日:
实际上只有两种方法:1)禁用 SELinux(或将其设置为宽松模式)或 2)安装/调试/重新安装 Guix 中包含的 SELinux 守护进程策略。
守护进程策略是不是使用二进制安装方法安装,因为已知它不完整。您需要获取 Guix 源代码的副本并对其进行配置。您想要的文件名为“etc/guix-daemon.cil”。要调试它,您需要安装它,将 SELinux 设置为宽容模式,运行守护程序,然后检查审核日志是否有错误。
有一个SElinux guix-daemon.cil 文件的开放问题,这表明似乎已经合并到与我的安装捆绑在一起的文件中的补丁。
我安装setroubleshoot
并不断重新启动,guix-daemon.service
同时遵循通知中弹出的建议。守护进程最终启动后:
$ sudo chcon -R -t guix_daemon.guix_daemon_conf_t /var/guix/
$ sudo chcon -R -t guix_daemon.guix_profiles_t /var/guix/profiles/per-user/root/current-guix
$ sudo chcon -R -t guix_daemon.guix_profiles_t /var/guix/profiles/per-user/root/current-guix-1-link
但我仍然无法继续安装glibc-locales
:
$ guix install glibc-locales
hint: Consider installing the `glibc-utf8-locales' or `glibc-locales' package and defining `GUIX_LOCPATH', along these lines:
guix install glibc-utf8-locales
export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"
See the "Application Setup" section in the manual, for more info.
guix install: error: remounting /gnu/store writable: Permission denied
SELinux 诊断工具通知“guix-daemon”不允许“重新挂载”访问“文件系统”,并建议:
# ausearch -c 'guix-daemon' --raw | audit2allow -M my-guixdaemon
# semodule -X 300 -i my-guixdaemon.pp
但ausearch
在这方面失败了:
$ sudo ausearch -c '(x-daemon)' --raw | audit2allow -M my-xdaemon
compilation failed:
libsepol.hierarchy_add_type_callback: guix_daemon doesn't exist, guix_daemon.guix_daemon_conf_t is an orphan
libsepol.hierarchy_add_bounds: 1 errors found while adding hierarchies
如何允许guix-daemon
在 SELinux 中重新挂载文件系统?
答案1
我打开了宽容模式并使用了一段时间的Guix。 SELinux 支持显然仍在进行中。setroubleshoot
定期通报各种问题。在宽容模式下运行带有 SELinux 的 Guix 似乎是目前唯一实用的解决方案。
(永久打开宽容模式,编辑/etc/selinux/config
并重新启动。)