Was macht dieser `xhost...`-Befehl?

Was macht dieser `xhost...`-Befehl?

Bitte helfen Sie mir, diese Befehlszeile zu verstehen:

xhost +SI:localuser:lightdm

InVerweis auf die Antwort in diesem Beitragund schlagen Sie auch vor, ob es einen besseren Weg gibt und warum dieser erforderlich ist. Ich konnte mit der Manpage nicht viel anfangen, also erwarte ich eine ausführlichere Antwort, um es einfacher zu machen. (Soll ich localuser durch meinen Benutzernamen ersetzen und ist es so etwas wie das Hinzufügen zur Gruppe? Ich verstehe, dass + zum Hinzufügen ist, aber ich verstehe SI oder si nicht!)

Bitte geben Sie auch an, wie der Benutzer zum„Liste mit zulässigen Verbindungen“und was das bedeutet. Und wie überprüfe ich die aktuelle Liste?

Antwort1

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


Dermanpagehat 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 dasXsecuritymanpagesagt:

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, den Zugriff auf einen X-Server zu ermöglichen. Eine davon ist über eine XauthorityDatei, die von den Clients gemeinsam genutzt wird und keine weitere serverseitige Konfiguration erfordert. Die andere ist über die xhostListe, bei der die Konfiguration auf dem Server unterLaufzeit(es handelt sich also nicht um eine dauerhafte Änderung).

localuserEin Schlüsselwort soll also unverändert bleiben ( hier lightdmist der Benutzername, unter dem LightDM ausgeführt wird). Dies ist in etwa so, als würde man einer Gruppe etwas hinzufügen, da die Gruppen im Verständnis der Autorisierung des Servers liegen. 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 auszudrucken, wie auf 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 festzustellenWieein Benutzer zur Liste hinzugefügt wird und wie X diese Liste verwendet.


Der Grund hierfür ist die Verwendung von gsettings, das wiederum verwendet dbus, was wiederum normalerweise einen laufenden X-Server erfordert. Dies ist jedoch nicht notwendig, und Sie könnten sehendiese AskUbuntu-Antwort.

verwandte Informationen