Wie starte ich startx als Nicht-Root?

10

Kürzlich habe ich von Ubuntu zu Arch Linux gewechselt. Ich habe X11 als mein Fenstersystem und KDE als meine Desktop-Umgebung installiert. Ich habe separate Partition für /home, /var, /und , /bootund sie alle beim Booten montieren. Wenn ich laufe startx, wird die folgende Meldung angezeigt.

xauth:timeout in locking authority file /home/hello/.Xauthority

Ich habe diese Datei versehentlich gelöscht. Also habe ich es von kopiert /root. Ich habe die Berechtigung mithilfe des folgenden Codes geändert:

# chown hello:users ~/.Xauthority

Selbst danach kann ich nur ausgeführt werden, startxwenn ich ein Root-Konto verwende.

Habi
quelle
Das Kopieren der Datei ist ein Sicherheitsrisiko. Sie haben seine Berechtigungen (Eigentümer) geändert, nicht seine Autorität.
Strg-Alt-Delor
Verschieben Sie ~ / .Xauthority (erneut) und versuchen Sie es startxerneut. Funktioniert es? Wenn nicht, wie lautet die genaue Fehlermeldung?
Adaephon

Antworten:

11

Zunächst wird eine Klarstellung, Xist nicht ein Window - Manager , es ist ein Windowing - System .

In der ~/.XauthorityDatei werden lediglich die Identifikationsdaten für die XSitzung des aktuellen Benutzers gespeichert. Es handelt sich um die gelesene Datei, wenn das System feststellen muss, ob Sie das Recht haben, die aktuelle XSitzung zu verwenden.

Sie sollten niemals ein vorhandenes von einem anderen Konto kopieren. Die Datei sollte immer dem ausgeführten Benutzer gehören Xund wird automatisch erstellt, wenn Sie eine neue XSitzung starten . Löschen Sie einfach die Datei, die Sie haben, und führen Sie sie startxerneut aus. Alles sollte wie gewohnt funktionieren:

$ rm ~/.Xauthority; startx
terdon
quelle
Tredon, auch nach dem Entfernen der .Xauthority-Datei. Ich kann nicht starx. Es wird weiterhin derselbe Fehler angezeigt.
Habi
@Habi Sie müssen sicherstellen, dass keine X-Sitzungen ausgeführt werden. Entfernen Sie dann die Datei und führen Sie sie startxerneut aus.
Terdon
Jetzt wird X ausgeführt, zeigt jedoch eine andere Meldung an. Aufruf von Inusertemp fehlgeschlagen (temporäre Verzeichnisse voll?). Überprüfen Sie Ihre Installation.
Habi
@Habi ah, gut, das ist ein Fortschritt :). Bitte stellen Sie hierzu eine weitere Frage, da es sich um ein völlig anderes Problem handelt. Zeigen Sie uns in der neuen Frage die Ausgabe von df -hund stellen Sie sicher, dass dieses Problem nach dem Neustart weiterhin besteht.
Terdon
Tredon, ja, ich werde diesen Fortschritt berücksichtigen. :). Übrigens, danke.
Habi
3

Ich denke, ein Problem ist, dass sich Leute als root anmelden und dann die Benutzer wechseln su -l username, wodurch ein Unterprozess unter root erstellt / erzeugt wird, der dem "Benutzernamen" gehört. X verwendet den .Xauthorityobersten Prozess (in diesem Fall root), für dessen Verwendung "Benutzername" keine Berechtigung hat.

Der Fehler wird angezeigt:

Cannot open virtual console 1 (Permission denied).

Um dies zu lösen, führen Sie einfach aus, loginanstatt sueine neue Shell als Top-Prozess zu starten.

Jonathan Komar
quelle
0

Ich habe dies auf einem Lenovo IdeaPad mit zwei Grafikkarten festgestellt, eine von Intel und eine von Nvidia.

Der daraus resultierende Fehler startxenthielt diese Zeile:

addscreen / screeninit für Treiber 0 kde Plasma fehlgeschlagen

Dies war die Lösung:

  1. Ändern Sie /etc/mkinitcpio.confdurch HinzufügenMODULES=(nouveau)
  2. sudo mkinitcpio -p linux
  3. Neustart
Matthias Braun
quelle