Розблокуйте екран входу за допомогою командного рядка


30

Чи можна розблокувати екран входу в оболонку 13.04 Gnome з командного рядка? Користувач увійшов до оболонки Gnome, я можу увійти до консолі як цей користувач. У мене також є кореневий доступ.

Це для доступу до активного дисплея X11 через VNC, не вводячи пароль.

Виконання

gnome-screensaver-command -d

як запропоновано в публікації в блозі, це не допомогло.

екран входу


Чи кидає вам ssh якийсь вихід чи помилку?
Брайам

@Braiam: Я можу ssh, це не проблема. Він призначений для доступу до активного дисплея X11 через VNC, але без введення пароля.
krlmlr

Відповіді:


33

Я припускаю, що у вас є недавня система Linux systemd(наприклад, Ubuntu 16.04 або новіша версія).

Якщо вам потрібно розблокувати власний сеанс , просто запустіть loginctl unlock-session(корінь не потрібно, оскільки це ваш власний сеанс). Якщо у вас кілька сеансів і ви хочете вибрати лише один, запустіть, loginctl list-sessionsщоб визначити сеанс, а потім запустіть, наприклад loginctl unlock-session c187.

Якщо вам потрібно розблокувати всі сеанси , просто запустіть sudo loginctl unlock-sessions. Зауважте, що це негайно розблокує ВСІ сеанси, незалежно від того, який користувач працює заставки.


Якщо вам потрібна додаткова інформація, щоб визначити правильний сеанс, ви можете спробувати щось подібне:

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

3
Це єдина відповідь, яка працює 16.04
limoqueeze


1
Вам потрібно, sudoякщо ви хочете розблокувати заставки ВСІХ сеансів (включаючи сеанси, які не працюють з вашим ідентифікатором користувача).
Мікко Ранталайнен

Також відзначте останній sв unlock-sessions. Якщо ви хочете розблокувати лише власний сеанс, просто зробіть це loginctl unlock-session.
Мікко Ранталайнен

2
Це має бути прийнята відповідь!
Бріс

16

Проблема з виконанням таких команд, як gnome-screensaver-commandсеанс SSH, зазвичай полягає в тому, що вони не підключаються автоматично до відповідної шини сеансу для активного сеансу на робочому столі - зазвичай, встановлення змінної DISPLAY виправить це, наприклад, ці роботи для мене (увійшли через SSH як той самий користувач, який володіє заблокованим сеансом X, який знаходиться на DISPLAY: 0):

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

розблокувати та

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

замкнути.

Крім того, ви можете перемикати активний стан, використовуючи, dbus-sendнаприклад,

$ 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

Джерело: https://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.html#gs-examples


1
На жаль, жоден із цих методів не розблокував конкретне блокування екрана, встановлене в моїй системі (див. Скріншот). Як я можу знайти, який процес відповідає за блокування екрана?
krlmlr

1
Чи повертають команди помилку? Якщо так, будь ласка, опублікуйте його. Щоб побачити, чи працює інша заставка, ви можете спробувати ps -fu <username> | grep saver- можливо, xscreensaverвона використовується замість gnome-screensaver, і в цьому випадку ви можете спробувати DISPLAY=:0 xscreensaver-command -deactivate.
steeldriver

1
Я перевірив цю відповідь на Ubuntu 14.04. Це не працює. Він розблоковує екран, але екран залишається заблокованим.
kasperd

5

Для мене працювало наступне:

sudo killall gnome-screensaver

Особливо корисно, коли ви входите через SSH з іншим користувачем.


Підтверджено, що у мене була ця проблема, коли клавіатура не набирала текст на екрані розблокування, але змогла переключитися на термінал за допомогою CTRL + ALT + F3, і цей вбивця заставки допомогла. Тоді я просто повернувся CTRL + ALT + F2 назад до сесії, яку було заблоковано :)
jave.web

Це працює, коли X2Go показує заблокований екран і не відповідає :)
endolith

1

У мене виникла проблема з тим, що блокування екрана (заставки) gnome 3 застрягло на порожньому екрані. Мені вдалося обійти це, замінивши менеджера вікон gnome-shell.

Ctrl + Alt + F1 та увійдіть у віртуальну консоль, потім:

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

( &Фони нової оболонки gnome, щоб ви могли вийти з віртуальної консолі та продовжувати її працювати. Альтернативно використовуйте Ctrl + Z, щоб призупинити процес оболонки gnome та bgперетворити його на фон.)

Це може бути не елегантно, але, нарешті, це дозволило мені повернутися до своїх настільних програм, не маючи гнома, змусити мене вийти.


Дякую, я спробую перевірити, чи gnome-shellпрацює для мене перезапуск .
krlmlr

1

У мене була подібна проблема, коли екран розблокування не сприймав введення клавіатури іноді. Я нарешті вирішив це вбити кілька gnome-screensaver запущених процесів, а також один gnome-screensaver-dialogпроцес. Я здогадуюсь, що будь-який процес породжував 2 сеанси заставки гнома-заставки, зіпсував мій екран розблокування. Я насправді замість цього використовую xscreensaver, тому, можливо, це заплуталося з цим.

У будь-якому випадку, Ctrl+Alt+F1шукайте запущені заставки ps -aux | grep screenі вбийте їх усіх. Команди gnome та xscreensaver, перелічені в інших відповідях, для мене не працювали.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.