Co robi ten skrypt?
#!/bin/bash
xhost +local:
xhost +si:localuser:root
Jaka jest domyślna lista xhost
?
xhost +SI:localuser:root
umożliwia root
użytkownikowi dostęp do działającego serwera X. Bieżący serwer X jest wskazywany przez DISPLAY
zmienną środowiskową. xhost +local:
robi to samo dla każdego użytkownika, więc root
linia nie ma większego zastosowania.
Podręcznika ma dość dobre wyjaśnień:
[+]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.)
I Xsecurity
podręcznika mówi:
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
Z odrobiną kontekstu: Istnieją dwa często używane sposoby, aby umożliwić dostęp do serwera X. Jednym z nich jest Xauthority
plik, który jest współdzielony przez klientów i nie wymaga dalszej konfiguracji po stronie serwera. Drugi jest za pośrednictwem xhost
listy, gdzie konfiguracja jest wykonywana na serwerze w czasie wykonywania (więc nie jest to trwała zmiana).
Jest więc localuser
słowem kluczowym, które należy zachować bez zmian (tutaj root
jest nazwa użytkownika). To trochę przypomina dodawanie do grupy, ponieważ grupy rozumieją autoryzację na serwerze. Nie dotyczy to jednak żadnych grup systemowych ani użytkowników. Zmieniana jest tylko konfiguracja środowiska wykonawczego serwera X.
Domyślne zachowanie xhost
podczas uruchamiania bez argumentów polega na drukowaniu listy, jak mówi strona:
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.
Na przykład:
$ xhost
access control enabled, only authorized clients can connect
SI:localuser:muru
( muru
to moja nazwa użytkownika).