xhost-Einstellung beim Booten


8

Ich kann xhost beim Booten in Fedora einstellen, indem ich Folgendes bearbeite /etc/gdm/Init/Defaultund zum Beispiel hinzufüge:

/usr/bin/xhost +local:

Wie kann man das in Ubuntu machen? Ich will das die

/usr/bin/xhost +local:

Befehl wird ausgeführt, wenn das System an der Anmeldeaufforderung sitzt.

Antworten:


11

Der xhostBefehl benötigt zum Ausführen einen aktiven X-Server. Er kann auf dem Anmeldebildschirm ausgeführt werden, z. B. beim lightdmLaden. Sie können es aktivieren, /etc/lightdm/lightdm.confindem Sie die Zeile bearbeiten und hinzufügen:

display-setup-script=/home/user/bin/xhost.sh

Beispieldatei /etc/lightdm/lightdm.conf:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
display-setup-script=/home/user/bin/xhost.sh

Beispieldatei /home/user/bin/xhost.sh:

#!/bin/bash
xhost +

Es funktioniert unter Ubuntu 12.04.1 LTS und wurde benötigt, um eine Java-Anwendung zu aktivieren, die X benötigte und von Tomcat 6 ausgeführt wurde.


1
Möglicherweise müssen Sie das Skript xhost.sh ausführbar machen mit: chmod + x /home/user/bin/xhost.sh
George Litos

Funktioniert in Xubuntu 18.04, aber stellen Sie sicher, dass das Skript wie von @George Litos erwähnt ausführbar ist, da Ihr System sonst nicht startet.
José Tomás Tocino

2

Das hat bei mir funktioniert:

Bearbeiten ~/.xinitrc:

export DISPLAY=":0.0"
xhost +
openbox

Hinweis: In meinem speziellen Setup wird nur Openbox ausgeführt . Normalerweise ist diese Datei leer oder fehlt in Ubuntu. Ich vermute, Sie könnten die "openbox" -Linie entfernen und es würde funktionieren, aber ich habe momentan keine Möglichkeit, sie zu testen. Wenn es nicht funktioniert, ersetzen Sie die letzte Zeile für Ihren Fenstermanagerbefehl.


1

~/.xinitrchat bei Ubuntu 14.04 nicht funktioniert, aber das Folgende in hat ~/.profilefunktioniert. Bei jedem Login, GUI / Terminal / SSH / etc ... wird das Skript ausgeführt, sodass ich umleiten kann stdout, um die Ausgabe stummzuschalten.

xhost +local: > /dev/null


1

Ich hatte das gleiche Problem mit Ubuntu 17.10. Möglicherweise war mein System nicht richtig konfiguriert. Jedenfalls habe ich in meinem Fall hinzugefügt

xhost + SI:localuser:root > /dev/null

am Ende meiner ~/.bashrcDatei und es hat funktioniert. Ich weiß nicht, ob dies ein Sicherheitsrisiko ist. Ich teile dies für den Fall, dass sich jemand anderes in der gleichen Situation befindet, und vertraue darauf, dass das Hinzufügen von root zur Liste der vorrangigen X-Server-Benutzer in Ordnung sein sollte.

Es wird hier vorgeschlagen http://ubuntuhandbook.org/index.php/2017/10/ubuntu-17-10-tip-graphical-apps-doesnt-launch-via-root-sudo-gksu/

Sie können es zuerst direkt auf dem Terminal testen:

$ xhost + SI:localuser:root
$ xhost -

Die zweite Zeile stellt sicher, dass nur diejenigen in der Liste Zugriff auf den X-Server haben. Versuchen Sie dann "Als Administrator bearbeiten", nachdem Sie mit der rechten Maustaste auf eine Datei geklickt oder direkt ausgeführt haben

$ pkexec gedit

Wenn dies nicht funktioniert, ist es sinnlos, den Befehl in ~ / .bashrc permanent zu machen.

Genauer gesagt habe ich zuerst ausgeführt

$ xhost

um zu sehen, welche Benutzer Zugriff auf den X-Server hatten. Ich sah , dass das Format war , SI:localuser:dominicwo dominicmein Login - Name ist. Also habe ich das gleiche Format verwendet SI:localuser:root , um den rootBenutzer hinzuzufügen .


0

Hier ist eine Variante der Antwort von @ GeorgeLitos mit diesen Änderungen:

  • Nicht direkt ändern /etc/lightdm/lightdm.conf, da dies eine systemeigene Datei ist, die möglicherweise durch Systemaktualisierungen überschrieben wird. Verwenden Sie stattdessen das Erweiterungsverzeichnis /etc/lightdm/lightdm.conf.d/. Dies bedeutet auch, dass andere Einstellungen dort nicht dupliziert werden müssen.
  • Kein separates Shell-Skript erforderlich; Der Befehl kann direkt in die Konfigurationsdatei eingefügt werden.

Erstellen Sie einfach eine Datei (als Benutzer root) /etc/lightdm/lightdm.conf.d/xhost.confmit folgenden Inhalten:

[SeatDefaults]
display-setup-script=xhost +

Dies funktioniert unter Ubuntu 16.04.5 LTS.


-1

Bearbeiten Sie die Datei /etc/rc.local(mit sudo) und fügen Sie den Befehl vor dem letzten Befehl ( exit 0) hinzu.


1
Dies wird nicht funktionieren (und ich habe es trotzdem versucht und es funktioniert nicht). Da dieses Skript keine Zugriffsrechte hat, um diese Einstellung an erster Stelle zu ändern. Muss es als lightdm user gemacht werden?
Jurten

-1

Fügen Sie die folgende Zeile hinzu /etc/xdg/lxsession/LXDE/autostart

xhost +local:
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.