Nó chỉ ra rằng ít nhất cho đến NFSv4.1, NFS không hỗ trợ đầy đủ cho ngữ cảnh SELinux; bạn chỉ có thể đặt ngữ cảnh cho mỗi lần gắn kết, không phải cho mỗi tệp/thư mục.
Vì vậy, trước tiên chúng ta cần cho phép vncserver truy cập vào các thư mục chính của NFS. Điều này đã được sửa ngược dòng trong tigervnc v1.12. Nếu điều đó không khả dụng cho HĐH, chúng ta chỉ cần lấy cấu hình SELinux mới từ thượng nguồn và cài đặt nó trên hệ thống của mình. Điều này đã được ghi lại ở đây: https://github.com/TigerVNC/tigervnc/issues/1189. Dưới đây là các bước quan trọng:
- Lấy và trích xuất các nguồn tigervnc v1.12
- Truy cập <nguồn tigervnc>/unix/vncserver/selinux
- Tạo tệp chính sách SELinux mới (vncserver.pp) bằng cách chạy "make vncserver.pp"
- Nói với SELinux rằng chúng tôi đang sử dụng các thư mục chính NFS bằng cách chạy "setsebool -P use_nfs_home_dirs on". Tùy chọn -P làm cho nó vĩnh viễn.
- Cài đặt chính sách SELinux mới: "semodule -X 300 -i vncsession.pp"
Vấn đề tiếp theo mà chúng tôi gặp phải là vncserver không đợi NFS mount của chúng tôi. Nhiều hướng dẫn sẽ yêu cầu bạn thêm "Sau=remote-fs.target" hoặc "Sau=home.mount" hoặc "RequiresMountsFor=/home". Tuy nhiên, điều này không hoạt động với các hệ thống tệp được gắn bởi autofs (ít nhất, nó không hoạt động đối với tôi).
Thay vào đó, chúng ta cần đợi autofs xuất hiện. Thêm "Sau=autofs.target" vào phần [Đơn vị] của tệp [email protected] của bạn. Đối với tôi, nó được đặt tại /usr/lib/systemd/system/[email protected]. Nhìn thấy: https://github.com/TigerVNC/tigervnc/issues/1284
Tại thời điểm này, hãy tiếp tục làm theo tài liệu hệ điều hành của bạn để định cấu hình máy chủ VNC.