¿Qué son xhost y xhost + si?

12

¿Qué está haciendo este script?

#!/bin/bash
xhost +local:
xhost +si:localuser:root

¿Cuál es la lista predeterminada de xhost?

srinuab4u
fuente

Respuestas:

16

xhost +SI:localuser:rootpermite al rootusuario acceder al servidor X en ejecución. El servidor X actual se indica mediante la DISPLAYvariable de entorno. xhost +local:hace lo mismo para cada usuario, por lo que la rootlínea no es de mucha utilidad.


La página de manual tiene explicaciones razonablemente buenas:

   [+]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:
...
   local     contains only one name, the empty string
   si        Server Interpreted
...
   The  local family specifies all the local connections at once. However,
   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.)

Y la página del Xsecuritymanual dice:

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

Con un poco de contexto: hay dos formas de uso común para permitir el acceso a un servidor X. Uno es a través de un Xauthorityarchivo, que es compartido por los clientes, y no necesita más configuración del lado del servidor. El otro es a través de la xhostlista, donde la configuración se realiza en el servidor en tiempo de ejecución (por lo que este no es un cambio permanente).

Entonces, localuseres una palabra clave que se debe retener tal como está ( rootes el nombre de usuario aquí). Esto es algo así como agregar a un grupo, ya que los grupos están en la comprensión del servidor de la autorización. Sin embargo, no hay grupos del sistema o usuarios afectados. Solo se cambia la configuración de tiempo de ejecución del servidor X.


El comportamiento predeterminado de xhostcuando se ejecuta sin argumentos es imprimir la lista, como dice la 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 ejemplo:

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

( murues mi nombre de usuario)

(De mi publicación en Unix y Linux )

muru
fuente