Odblokuj ekran logowania za pomocą wiersza poleceń


30

Czy można odblokować ekran logowania powłoki 13.04 Gnome z linii poleceń? Użytkownik jest zalogowany do powłoki Gnome, mogę zalogować się do konsoli jako ten użytkownik. Mam również dostęp do roota.

Służy do uzyskania dostępu do aktywnego wyświetlacza X11 przez VNC, bez konieczności wprowadzania hasła.

Wykonywanie

gnome-screensaver-command -d

jak sugeruje post na blogu, nie pomogło.

ekran logowania


Czy ssh rzuca ci jakieś wyjście lub błąd?
Braiam

@Braiam: Mogę wejść ssh, to nie jest problem. Służy do uzyskiwania dostępu do aktywnego wyświetlacza X11 przez VNC, ale bez konieczności podawania hasła.
krlmlr

Odpowiedzi:


33

Zakładam, że masz najnowszy system Linux z systemd(np. Ubuntu 16.04 lub nowszy).

Jeśli chcesz odblokować własną sesję , po prostu uruchom loginctl unlock-session(nie wymaga rootowania, ponieważ jest to Twoja własna sesja). Jeśli masz wiele sesji i chcesz wybrać tylko jedną, uruchom, loginctl list-sessionsaby zidentyfikować sesję, a następnie uruchom np loginctl unlock-session c187.

Jeśli chcesz odblokować wszystkie sesje , po prostu uruchom sudo loginctl unlock-sessions. Pamiętaj, że spowoduje to natychmiastowe odblokowanie WSZYSTKICH sesji bez względu na to, który użytkownik uruchomi wygaszacz ekranu.


Jeśli potrzebujesz więcej informacji, aby zidentyfikować prawidłową sesję, możesz spróbować czegoś takiego:

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

3
To jedyna odpowiedź, która działa 16.04
lemonsqueeze

Najwyraźniej nie ma potrzeby sudo
lemonsqueeze

1
Potrzebujesz, sudojeśli chcesz odblokować wygaszacze ekranu WSZYSTKICH sesji (w tym sesji, które nie działają z twoim identyfikatorem użytkownika).
Mikko Rantalainen,

Zwróć również uwagę na ostatni sw unlock-sessions. Jeśli chcesz odblokować tylko własną sesję, po prostu zrób loginctl unlock-session.
Mikko Rantalainen,

2
To powinna być zaakceptowana odpowiedź!
Brice

16

Problem z wykonywaniem poleceń takich jak gnome-screensaver-commandsesja SSH polega zwykle na tym, że nie łączą się one automatycznie z odpowiednią magistralą sesji dla sesji aktywnego pulpitu - zwykle ustawienie zmiennej DISPLAY to naprawi, na przykład te działają dla mnie (zalogowany przez SSH jako ten sam użytkownik, który jest właścicielem zablokowanej sesji X, która jest na WYŚWIETLACZU: 0):

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

odblokować i

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

zablokować.

Alternatywnie możesz przełączyć stan aktywny za pomocą dbus-send- na przykład

$ 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

Źródło: https://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.html#gs-examples


1
Niestety, żadna z tych metod nie odblokowała konkretnej blokady ekranu zainstalowanej w moim systemie (patrz zrzut ekranu). Jak znaleźć proces, który i tak jest odpowiedzialny za blokowanie ekranu?
krlmlr

1
Czy polecenia zwracają błąd? Jeśli tak, proszę opublikować. Aby sprawdzić, czy działa inny wygaszacz ekranu, możesz spróbować ps -fu <username> | grep saver- możliwe, że xscreensaverjest on używany zamiast gnome-screensaver, w którym to przypadku możesz spróbować DISPLAY=:0 xscreensaver-command -deactivate.
steeldriver

1
Przetestowałem tę odpowiedź na Ubuntu 14.04. To nie działa Odblokowuje ekran, ale ekran pozostaje zablokowany.
kasperd

5

Dla mnie działało:

sudo killall gnome-screensaver

Szczególnie przydatne, gdy jesteś zalogowany przez SSH z innym użytkownikiem.


Potwierdzono, że miałem ten problem, gdy klawiatura nie pisała na ekranie odblokowania, ale mogłem przełączyć się na terminal przy użyciu CTRL + ALT + F3 i ten zabójca wygaszacza ekranu pomógł. Potem po prostu poszedłem CTRL + ALT + F2 z powrotem do sesji, która została zablokowana :)
jave.web

Działa to, gdy X2Go pokazuje ekran blokady i nie odpowiada :)
endolith

1

Miałem problem z zablokowaniem ekranu gnome 3 (wygaszacza ekranu) na pustym ekranie. Udało mi się to obejść, zastępując menedżera okien gnome-shell.

Ctrl + Alt + F1 i zaloguj się na wirtualnej konsoli, a następnie:

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

( &Tło nowej powłoki gnome w tle umożliwia wylogowanie się z wirtualnej konsoli i utrzymanie jej działania. Alternatywnie można użyć klawiszy Ctrl + Z, aby zawiesić proces powłoki gnome i włączyć bggo w tle).

To może nie być eleganckie, ale w końcu pozwoliło mi wrócić do aplikacji komputerowych bez zmuszania mnie do wylogowania się.


Dzięki, postaram się sprawdzić, czy ponowne uruchomienie gnome-shelldziała dla mnie.
krlmlr

1

Miałem podobny problem, w którym ekran odblokowywania czasami nie akceptował klawiatury. Sposób, w jaki ostatecznie to rozwiązałem, polegał na zabiciu kilku gnome-screensaver uruchomionych procesów, a także jednego gnome-screensaver-dialogprocesu. Zgaduję, że jakikolwiek proces pojawił się 2 sesje wygaszacza ekranu gnome popsuły mój ekran odblokowania. Właściwie powinienem zamiast tego używać xscreensaver, więc może to się z tym pogubiło.

W każdym razie Ctrl+Alt+F1poszukaj uruchomionych procesów wygaszacza ekranu ps -aux | grep screeni zabij je wszystkie. Polecenia gnome i xscreensaver wymienione w innych odpowiedziach nie działały dla mnie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.