我无法在我的 AlmaLinux 8 机器上启动 tigervnc。我们已启用 SELinux,并且我们的主目录是自动挂载的 NFS 共享(由 IPA 配置)。
我在 /var/log/audit/audit.log 中看到有关 vncserver 访问我们的主目录的错误。
答案1
事实证明,至少到 NFSv4.1 为止,NFS 还没有完全支持 SELinux 上下文;您只能为每个挂载设置上下文,而不能为每个文件/目录设置上下文。
因此,首先我们需要允许 vncserver 访问 NFS 主目录。此问题已在 tigervnc v1.12 中得到修复。如果操作系统不支持此功能,我们可以从上游提取新的 SELinux 配置并将其安装在我们的系统上。此处已记录此问题:https://github.com/TigerVNC/tigervnc/issues/1189。以下是重要步骤:
- 获取并提取 tigervnc v1.12 源
- 转到 <tigervnc 源>/unix/vncserver/selinux
- 通过运行“make vncserver.pp”生成新的 SELinux 策略文件 (vncserver.pp)
- 通过运行“setsebool -P use_nfs_home_dirs on”告诉 SELinux 我们正在使用 NFS 主目录。-P 选项使它永久生效。
- 安装新的 SELinux 策略:“semodule -X 300 -i vncsession.pp”
我们遇到的下一个问题是 vncserver 没有等待我们的 NFS 挂载。许多指南会告诉您添加“After=remote-fs.target”或“After=home.mount”或“RequiresMountsFor=/home”。但是,这不适用于由 autofs 挂载的文件系统(至少对我来说是这样)。
相反,我们需要等待 autofs 启动。将“After=autofs.target”添加到[电子邮件保护]文件。对我来说,它位于 /usr/lib/systemd/system/[电子邮件保护]。 看:https://github.com/TigerVNC/tigervnc/issues/1284
此时继续按照操作系统的文档配置 VNC 服务器。