Что делает команда `xhost ...`?

Что делает команда `xhost ...`?

Пожалуйста, помогите мне понять эту строку команды:

xhost +SI:localuser:lightdm

вссылка на ответ в этом постеи также предложите, есть ли лучший способ и зачем он нужен. Я не смог многого извлечь из страницы руководства, поэтому я ожидаю более подробного ответа, чтобы упростить это. (Следует ли мне заменить localuser на мое имя пользователя, и это что-то вроде добавления в группу? Я понимаю, что + означает добавление, но не понимаю SI или si!)

Пожалуйста, также укажите, как пользователь добавляется в"список разрешенных для установления связей"и что это значит. Также, как мне проверить текущий список?

решение1

xhost +SI:localuser:lightdmпозволяет lightdmпользователю получить доступ к работающему X-серверу. Текущий X-сервер указывается DISPLAYпеременной окружения.


Theстраница руководстваимеет достаточно хорошие объяснения:

   [+]name The given name (the plus sign is optional) is added to the list
           allowed to connect to the X server.  The name  can  be  a  host
           name or a complete name (See NAMES for more details).
...
NAMES
   A complete name has the syntax ``family:name'' where the  families  are
   as follows:
...
   si        Server Interpreted
...
   the server interpreted address "si:localuser:username" can be  used  to
   specify a single local user. (See the Xsecurity(7) manual page for more
   details.)

ИXsecurityстраница руководстваговорит:

SERVER INTERPRETED ACCESS TYPES
   The  sample  implementation   includes   several   Server   Interpreted
   mechanisms:
       IPv6                          IPv6 literal addresses
       hostname                      Network host name
       localuser                     Local connection user id
       localgroup                    Local connection group id

Немного контекста: Существует два часто используемых способа разрешить доступ к X-серверу. Один из них — через файл Xauthority, который совместно используется клиентами и не требует дальнейшей настройки на стороне сервера. Другой — через список xhost, где настройка выполняется на сервере по адресувремя выполнения(так что это не постоянное изменение).

Итак, localuserключевое слово должно быть сохранено как есть ( lightdmздесь — имя пользователя, под которым работает LightDM). Это немного похоже на добавление в группу, поскольку группы находятся в понимании сервера как авторизованные. Однако это не затрагивает ни системные группы, ни пользователей. Изменяется только конфигурация времени выполнения X-сервера.

Поведение по умолчанию xhostпри запуске без аргументов — печать списка, как сказано в man-странице:

nothing If no command line arguments are given,  a  message  indicating
        whether  or not access control is currently enabled is printed,
        followed by the list of those allowed to connect.  

Например:

$ xhost
access control enabled, only authorized clients can connect
SI:localuser:muru

Вероятно, нам придется изучить код, чтобы определитькакпользователь добавляется в список и как X использует этот список.


Причина, по которой это делается, заключается в использовании gsettings, который использует dbus, который в свою очередь обычно требует работающего сервера X. Однако это не обязательно, и вы можете увидетьэтот ответ AskUbuntu.

Связанный контент