O que esse comando `xhost ...` faz?

O que esse comando `xhost ...` faz?

Por favor me ajude a entender esta linha de comando:

xhost +SI:localuser:lightdm

emreferência à resposta neste poste também sugira se existe uma maneira melhor e por que isso é necessário. Não consegui tirar muito proveito da página de manual, então espero uma resposta mais detalhada para simplificar. (Devo substituir localuser pelo meu nome de usuário e é algo como adicionar ao grupo? Entendo que + é para adicionar, mas não entendo SI ou si !)

Mencione também como o usuário é adicionado ao"lista com permissão para fazer conexões"e o que isso significa. Além disso, como verifico a lista atual?

Responder1

xhost +SI:localuser:lightdmpermite ao lightdmusuário acessar o servidor X em execução. O servidor X atual é indicado pela DISPLAYvariável de ambiente.


Opágina de manualtem explicações razoavelmente boas:

   [+]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.)

E aXsecuritypágina de manualdiz:

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

Com um pouco de contexto: Existem duas maneiras comumente usadas para permitir acesso a um servidor X. Uma delas é por meio de um Xauthorityarquivo, que é compartilhado pelos clientes e não precisa de mais configurações no servidor. A outra é através da xhostlista, onde a configuração é feita no servidor emtempo de execução(portanto, esta não é uma mudança permanente).

Portanto, localuseruma palavra-chave deve ser mantida como está ( lightdmé o nome de usuário aqui, aquele com o qual o LightDM é executado). Isso é como adicionar a um grupo, pois os grupos estão no entendimento de autorização do servidor. No entanto, nenhum grupo de sistema ou usuário é afetado. Somente a configuração de tempo de execução do servidor X é alterada.

O comportamento padrão de xhostquando executado sem argumentos é imprimir a lista, como diz a página de manual:

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.  

Por exemplo:

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

Provavelmente precisaremos examinar o código para determinarcomoum usuário é adicionado à lista e como X usa essa lista.


A razão pela qual isso é feito é usar gsettings, que usa dbus, que por sua vez geralmente precisa de um servidor X em execução. No entanto, isso não é necessário, e você pode veresta resposta do AskUbuntu.

informação relacionada