3

У меня на компьютере запущен сервер X.org (Gentoo Linux без PAM, PolicyKit и т.д.), Входящие соединения TCP отключены с помощью -nolisten tcp.

Можно ли создать белый список, указывающий, каким локальным пользователям разрешено открывать окна на этом дисплее X11?

Изменить: я запускаю мой X-сервер с этим модулем systemd:

[Unit]
Description=X Window System
Requires=systemd-user-sessions.service
After=systemd-user-sessions.service

[Service]
ExecStart=/usr/bin/xinit ${HOME}/.xinitrc -- -nolisten tcp vt09
User=myuser
Environment=SHELL=/bin/bash

[Install]
Alias=display-manager.service

Редактировать 2: я изменил это к этому ...

ExecStart=/usr/bin/xinit ${HOME}/.xinitrc -- -auth ${HOME}/.Xauthority -nolisten tcp vt09

... создал $ {HOME}/.Xauthority ...

mcookie | sed -e 's/^/add :0 . /' | xauth -q

... и перезапустил X-сервер. Вуаля, авторизация теперь по умолчанию запрещена. Чтобы предоставить конкретным пользователям доступ, я скопировал.Xauthority к их домашнему каталогу.

Команды xhost не использовались.

1 ответ1

2

С Xorg - да, используя специальный вид «интерпретируемых сервером» адресов:

xhost +SI:localuser:root
xhost +SI:localuser:jim

Кроме того, вы можете дать каждому пользователю копию файла Xauthority, который вы использовали для Xorg -auth … .

Тем не менее, X11 не был предназначен для нескольких пользователей, имеющих доступ к одному и тому же дисплею, и каждый клиент в основном имеет полный доступ, поэтому вы делаете огромную дыру в безопасности - любой пользователь может контролировать весь экран, запускать кейлоггер, предоставлять кому-либо еще доступ или отозвать доступ для существующих пользователей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .