Was macht dieser Befehl "xhost ..."?

8

Bitte helfen Sie mir, diese Befehlszeile zu verstehen:

xhost +SI:localuser:lightdm

in Bezug auf die Antwort in diesem Beitrag und auch vorschlagen, ob es einen besseren Weg gibt und warum dies erforderlich ist. Ich konnte nicht viel aus der Manpage machen, daher erwarte ich eine detailliertere Antwort, um es einfach zu machen. (Sollte ich localuser durch meinen Benutzernamen ersetzen und ist es so etwas wie das Hinzufügen zur Gruppe? Ich bekomme das + zum Hinzufügen, verstehe aber SI oder si nicht!)

Bitte erwähnen Sie auch, wie der Benutzer zur "Liste zum Herstellen von Verbindungen" hinzugefügt wird und was dies bedeutet. Wie überprüfe ich auch die aktuelle Liste?

präzise
quelle

Antworten:

10

xhost +SI:localuser:lightdmErmöglicht dem lightdmBenutzer den Zugriff auf den laufenden X-Server. Der aktuelle X-Server wird durch die DISPLAYUmgebungsvariable angezeigt .


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:
...
   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.)

Und die XsecurityManpage 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 XauthorityDatei, die von den Clients gemeinsam genutzt wird und keine weitere serverseitige Konfiguration benötigt. Die andere erfolgt über die xhostListe, in der die Konfiguration zur Laufzeit auf dem Server erfolgt (dies ist also keine dauerhafte Änderung).

Ist localuseralso ein Schlüsselwort, lightdmdas unverändert beibehalten werden soll ( ist hier der Benutzername, unter dem LightDM ausgeführt wird). 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 xhostbeim 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

Wir müssen wahrscheinlich den Code untersuchen, um festzustellen, wie ein Benutzer zur Liste hinzugefügt wird und wie X diese Liste verwendet.


Der Grund dafür ist die Verwendung gsettings, die verwendet dbus, für die normalerweise ein X-Server ausgeführt werden muss. Dies ist jedoch nicht erforderlich, und Sie können diese AskUbuntu-Antwort sehen .

muru
quelle
Dies ist eine wirklich gute Antwort; Ich bin daran interessiert, wie ich die Einstellungen host +xxxoder host -zzzbeibehalten kann.
wird