Entsperren Sie den Anmeldebildschirm über die Befehlszeile


30

Ist es möglich, den Anmeldebildschirm der 13.04 Gnome-Shell über eine Befehlszeile zu entsperren? Wenn ein Benutzer bei der Gnome-Shell angemeldet ist, kann ich mich als dieser Benutzer bei einer Konsole anmelden. Ich habe auch root-Zugriff.

Hiermit können Sie über VNC auf eine aktive X11-Anzeige zugreifen, ohne das Kennwort eingeben zu müssen.

Ausführen

gnome-screensaver-command -d

wie in einem blog post vorgeschlagen hat nicht geholfen.

Anmeldebildschirm


Wirft ssh irgendwelche Ausgaben oder Fehler?
Braiam

@Braiam: Ich kann rein ssh, das ist nicht das Problem. Hiermit können Sie über VNC auf eine aktive X11-Anzeige zugreifen, ohne das Kennwort eingeben zu müssen.
krlmlr

Antworten:


33

Ich gehe davon aus, dass Sie ein aktuelles Linux-System haben systemd(zB Ubuntu 16.04 oder neuer).

Wenn Sie Ihre eigene Sitzung entsperren müssen, führen Sie sie einfach aus loginctl unlock-session(kein Root erforderlich, da es sich um Ihre eigene Sitzung handelt). Wenn Sie mehrere Sitzungen haben und nur eine auswählen möchten, führen Sie loginctl list-sessionszur Identifizierung der Sitzung aus und führen Sie dann z loginctl unlock-session c187.

Wenn Sie alle Sitzungen entsperren müssen , führen Sie einfach aus sudo loginctl unlock-sessions. Beachten Sie, dass dadurch sofort ALLE Sitzungen freigeschaltet werden, unabhängig davon, welcher Benutzer den Bildschirmschoner ausführt.


Wenn Sie weitere Informationen benötigen, um die richtige Sitzung zu ermitteln, können Sie Folgendes versuchen:

loginctl list-sessions --no-legend | while read id rest; do echo; loginctl show-session $id; done

3
Dies ist die einzige Antwort, die am 16.04.
Zitronenquietsch

Offenbar
kein Sudo

1
Sie benötigen, sudowenn Sie Bildschirmschoner für ALLE Sitzungen entsperren möchten (einschließlich Sitzungen, die nicht mit Ihrer Benutzer-ID ausgeführt werden).
Mikko Rantalainen

Beachten Sie auch die letzte sin unlock-sessions. Wenn Sie nur Ihre eigene Sitzung entsperren möchten, tun Sie dies einfach loginctl unlock-session.
Mikko Rantalainen

2
Es sollte die akzeptierte Antwort sein!
Brice

16

Das Problem bei der Ausführung von Befehlen wie gnome-screensaver-commandin einer SSH - Sitzung besteht normalerweise darin, dass sie nicht automatisch mit dem entsprechenden Sitzungsbus für die aktive Desktopsitzung verbunden werden. In der Regel wird durch das Festlegen der Variablen DISPLAY behoben, dass diese beispielsweise für mich funktionieren (angemeldet über SSH als derselbe Benutzer, dem die gesperrte X-Sitzung auf DISPLAY gehört: 0):

$ DISPLAY=:0 gnome-screensaver-command -d

zu entsperren und

$ DISPLAY=:0 gnome-screensaver-command -l

abschließen.

Alternativ können Sie den aktiven Status umschalten, indem Sie dbus-sendbeispielsweise - verwenden

$ export DISPLAY=:0
$ dbus-send --session \
          --dest=org.gnome.ScreenSaver \
          --type=method_call \
          --print-reply \
          --reply-timeout=20000 \
          /org/gnome/ScreenSaver \
          org.gnome.ScreenSaver.SetActive \
          boolean:false

Quelle: https://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.html#gs-examples


1
Leider hat keine dieser Methoden die auf meinem System installierte Bildschirmsperre aufgehoben (siehe Screenshot). Wie finde ich heraus, welcher Prozess für das Sperren des Bildschirms verantwortlich ist?
krlmlr

1
Gibt der Befehl einen Fehler zurück? Wenn ja, bitte posten Sie es. Um festzustellen, ob ein anderer Bildschirmschoner ausgeführt wird, können Sie es versuchen. ps -fu <username> | grep saverMöglicherweise xscreensaverwird dieser anstelle von verwendet gnome-screensaver. In diesem Fall können Sie es versuchen DISPLAY=:0 xscreensaver-command -deactivate.
Steeldriver

1
Ich habe diese Antwort auf Ubuntu 14.04 getestet. Es funktioniert nicht Der Bildschirm wird freigegeben, der Bildschirm bleibt jedoch gesperrt.
Kasperd

5

Folgendes hat für mich funktioniert:

sudo killall gnome-screensaver

Besonders hilfreich, wenn Sie mit einem anderen Benutzer über SSH angemeldet sind.


Bestätigt, ich hatte dieses Problem, als die Tastatur nicht auf dem Entsperrbildschirm tippte, sondern mit STRG + ALT + F3 zum Terminal wechseln konnte, und dieser Bildschirmschoner-Killer half. Dann ging ich einfach mit STRG + ALT + F2 zurück zu der Sitzung, die gesperrt war :)
jave.web

Dies funktioniert, wenn X2Go den Sperrbildschirm anzeigt und nicht reagiert :)
endolith

1

Ich hatte ein Problem damit, dass die Bildschirmsperre (Bildschirmschoner) von Gnome 3 auf einem leeren Bildschirm steckte. Ich schaffte es, um es zu der Arbeit von zu ersetzen , den gnome-shell - Window - Manager.

Strg + Alt + F1 und Anmeldung an einer virtuellen Konsole, dann:

pkill -QUIT gnome-shell
DISPLAY=:0.0 gnome-shell -r &

(& Hintergründe der neuen Gnome-Shell, damit Sie sich von der virtuellen Konsole abmelden und sie weiter ausführen können. Alternativ können Sie Strg + Z verwenden, um den Gnome-Shell-Prozess anzuhalten und bgim Hintergrund auszuführen.)

Es mag nicht elegant sein, aber es erlaubte mir schließlich, zu meinen Desktop-Apps zurückzukehren, ohne dass der Gnom mich zwang, mich abzumelden.


Danke, ich werde versuchen zu sehen, ob der Neustart gnome-shellfür mich funktioniert.
krlmlr

1

Ich hatte ein ähnliches Problem, bei dem der Entsperrbildschirm manchmal Tastatureingaben nicht akzeptierte. Die Art und Weise, wie ich es schließlich gelöst habe, bestand darin, die verschiedenen gnome-screensaver Prozesse, die ausgeführt wurden, sowie einen zu beendengnome-screensaver-dialog Prozess beenden. Ich vermute, dass irgendein Prozess, der 2 Gnome-Bildschirmschonersitzungen ausgelöst hat, meinen Entsperrbildschirm durcheinander gebracht hat. Eigentlich sollte ich stattdessen xscreensaver verwenden, also hat das vielleicht was damit zu tun.

Wie auch immer Ctrl+Alt+F1, suchen Sie nach laufenden Bildschirmschonerprozessen ps -aux | grep screenund beenden Sie sie alle. Die in den anderen Antworten aufgeführten Befehle gnome und xscreensaver haben bei mir nicht funktioniert.

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.