Was macht dieses Skript?
#!/bin/bash
xhost +local:
xhost +si:localuser:root
Was ist die Standardliste von xhost
?
xhost +SI:localuser:root
Ermöglicht dem root
Benutzer den Zugriff auf den laufenden X-Server. Der aktuelle X-Server wird durch die DISPLAY
Umgebungsvariable angezeigt . xhost +local:
macht das gleiche für jeden Benutzer, so dass die root
Leitung nicht viel nützt.
Die Manpage hat einigermaßen gute Erklärungen:
[+]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.)
Und die Xsecurity
Manpage sagt:
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
Mit ein wenig Kontext: Es gibt zwei häufig verwendete Möglichkeiten, um den Zugriff auf einen X-Server zu ermöglichen. Eine erfolgt über eine Xauthority
Datei, die von den Clients gemeinsam genutzt wird und keine weitere serverseitige Konfiguration benötigt. Die andere erfolgt über die xhost
Liste, in der die Konfiguration zur Laufzeit auf dem Server erfolgt (dies ist also keine dauerhafte Änderung).
Ist localuser
also ein Schlüsselwort, root
das unverändert beibehalten werden soll ( ist der Benutzername hier). Dies ähnelt dem Hinzufügen zu einer Gruppe, da die Gruppen dem Autorisierungsverständnis des Servers entsprechen. Es sind jedoch keine Systemgruppen oder Benutzer betroffen. Nur die Laufzeitkonfiguration des X-Servers wird geändert.
Das Standardverhalten xhost
beim Ausführen ohne Argumente besteht darin, die Liste zu drucken, wie in der Manpage angegeben:
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.
Zum Beispiel:
$ xhost
access control enabled, only authorized clients can connect
SI:localuser:muru
( muru
ist mein Benutzername.)