- Конфигурация пользователя: я настроил файл vncserver.conf следующим образом:
Код: Выделить всё
1:user1
- Политика SELinux: я использую модуль политики SELinux vncsession по умолчанию, который я успешно скомпилировал. Поскольку я не использую GNOME, я удалил строки, связанные с GNOME, из файла .te.
- Конфигурация Systemd и PAM: я использую служебный файл systemd Tigervnc по умолчанию и файл конфигурации PAM, предоставляемые пакетом TigerVNC. Изначально в эти файлы не вносилось никаких изменений.
- Обнаружена ошибка: когда я запускаю службу VNC-сервера с помощью systemctl start vncserver@:1, я наблюдайте в журналах следующие ошибки:
Код: Выделить всё
root@Test:/etc/pam.d# systemctl status vncserver@:1 -l
● vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled; vendor preset: disabled)
Active: active (running) since Fri 2025-01-17 16:53:37 UTC; 3s ago
Process: 48507 ExecStart=/usr/libexec/vncsession-start :1 (code=exited, status=0/SUCCESS)
Main PID: 48514 (vncsession)
Tasks: 0 (limit: 4637)
Memory: 468.0K
CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
‣ 48514 /usr/sbin/vncsession user1 :1
Jan 17 16:53:37 Test systemd[1]: Starting Remote desktop service (VNC)...
Jan 17 16:53:37 Test vncsession[48514]: pam_selinux(tigervnc:session): Unable to get valid context for user1
Jan 17 16:53:37 Test vncsession[48514]: pam_selinux(tigervnc:session): conversation failed
Jan 17 16:53:37 Test vncsession[48514]: pam_unix(tigervnc:session): session opened for user user1(uid=1001) by (uid=0)
Jan 17 16:53:37 Test systemd[1]: Started Remote desktop service (VNC).
pam_selinux(tigervnc:session): невозможно получить действительный контекст для пользователя 1
pam_selinux( Tigervnc:session): разговор не выполнен.
Несмотря на эти ошибки, служба сервера VNC запускается, но, похоже, возникла проблема с назначением контекста SELinux во время процесса аутентификации PAM.
- Временное решение: когда я закомментирую строку pam_systemd.so в /etc/pam.d/tigervnc, ошибка больше не наблюдается, и служба запускается без проблем без проблем.
- Дополнительная информация:
- user1 сопоставлен с контекст SELinux user_u.
- По всей видимости, проблема связана со взаимодействием между SELinux, PAM и TigerVNC во время процесса инициализации сеанса.
Код: Выделить всё
#%PAM-1.0
# THIS IS AN EXAMPLE CONFIGURATION
# MODIFY AS NEEDED FOR YOUR DISTRIBUTION
# pam_selinux.so close should be the first session rule
-session required pam_selinux.so close
session required pam_loginuid.so
-session required pam_selinux.so open
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session required pam_limits.so
-session optional pam_systemd.so
session required pam_unix.so
-session optional pam_reauthorize.so prepare
Код: Выделить всё
[Unit]
Description=Remote desktop service (VNC)
After=network.target systemd-user-sessions.service
[Service]
Type=forking
ExecStart=@CMAKE_INSTALL_FULL_LIBEXECDIR@/vncsession-start %i
PIDFile=/run/vncsession-%i.pid
SELinuxContext=system_u:system_r:vnc_session_t:s0
[Install]
WantedBy=multi-user.target
Подробнее здесь: https://stackoverflow.com/questions/793 ... ux-context