Desbloqueie a tela de login usando a linha de comando


30

É possível desbloquear a tela de login do shell do Gnome 13.04 a partir de uma linha de comando? Um usuário está logado no shell do Gnome, posso efetuar login em um console como esse usuário. Eu também tenho acesso root.

Isto é para acessar um monitor X11 ativo através do VNC, sem precisar digitar a senha.

Executando

gnome-screensaver-command -d

como sugerido em uma postagem do blog não ajudou.

tela de login


O ssh está lançando alguma saída ou erro?
Braiam 3/09/13

@Braiam: Eu posso ssh, esse não é o problema. É para acessar um monitor X11 ativo através do VNC, mas sem a necessidade de digitar a senha.
precisa saber é o seguinte

Respostas:


33

Suponho que você tenha um sistema Linux recente systemd(por exemplo, Ubuntu 16.04 ou mais recente).

Se você precisar desbloquear sua própria sessão , basta executar loginctl unlock-session(nenhuma raiz é necessária porque é sua própria sessão). Se você possui várias sessões e deseja selecionar apenas uma, execute loginctl list-sessionspara identificar a sessão e, em seguida, execute, por exemplo loginctl unlock-session c187.

Se você precisar desbloquear todas as sessões , basta executar sudo loginctl unlock-sessions. Observe que isso desbloqueia imediatamente TODAS as sessões, não importa qual usuário esteja executando o protetor de tela.


Se você precisar de mais informações para identificar a sessão correta, tente algo como isto:

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

3
Esta é a única resposta que funciona em 16.04
lemonsqueeze 15/06

Não há necessidade de sudo aparentemente
lemonsqueeze

1
É necessário sudose você deseja desbloquear os protetores de tela de TODAS as sessões (incluindo as que não estão sendo executadas com seu ID de usuário).
Mikko Rantalainen

Observe também o último sitem unlock-sessions. Se você deseja desbloquear apenas sua própria sessão, basta fazê-lo loginctl unlock-session.
Mikko Rantalainen

2
Deve ser a resposta aceita!
Brice

16

O problema com a execução de comandos como gnome-screensaver-commandem uma sessão SSH é geralmente que eles não se conectam automaticamente ao barramento de sessão apropriado para a sessão ativa da área de trabalho - geralmente, definir a variável DISPLAY corrigirá isso, por exemplo, isso funciona para mim (conectado via SSH como o mesmo usuário que possui a sessão X bloqueada, que está em DISPLAY: 0):

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

para desbloquear e

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

trancar.

Como alternativa, você pode alternar o estado ativo usando dbus-send- por exemplo

$ 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

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


1
Infelizmente, nenhum desses métodos desbloqueou o bloqueio de tela específico instalado no meu sistema (veja a captura de tela). Como posso descobrir qual processo é responsável por bloquear a tela?
precisa saber é o seguinte

1
Os comandos retornam um erro? Se sim, por favor publique. Para ver se um protetor de tela diferente está sendo executado, você pode tentar ps -fu <username> | grep saver- é possível que xscreensaveresteja sendo usado em vez de gnome-screensaver, nesse caso, você pode tentar DISPLAY=:0 xscreensaver-command -deactivate.
steeldriver

1
Eu testei esta resposta no Ubuntu 14.04. Isso não funciona. Ele desmarca a tela, mas a tela permanece bloqueada.
kasperd

5

O seguinte funcionou para mim:

sudo killall gnome-screensaver

Especialmente útil quando você está conectado via SSH com outro usuário.


Confirmado, tive esse problema quando o teclado não estava digitando na tela de desbloqueio, mas consegui mudar para o terminal usando CTRL + ALT + F3 e esse assassino de protetor de tela ajudou. Então eu só fui CTRL + ALT + F2 volta para a sessão que estava trancada :)
jave.web

Isso funciona quando o X2Go está mostrando a tela de bloqueio e não está respondendo :)
endolith

1

Eu tive um problema com o bloqueio de tela do Gnome 3 (protetor de tela) preso em uma tela em branco. Eu consegui contornar isso substituindo o gerenciador de janelas gnome-shell.

Ctrl + Alt + F1 e faça login em um console virtual e, em seguida:

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

( &Coloca em segundo plano o novo gnome-shell para que você possa sair do console virtual e mantê-lo em execução. Em alternativa, use Ctrl + Z para suspender o processo do gnome-shell e bgcolocá-lo em segundo plano.)

Pode não ser elegante, mas finalmente me permitiu voltar aos meus aplicativos de desktop sem que o gnome me obrigasse a sair.


Obrigado, vou tentar e ver se reiniciar gnome-shellfunciona para mim.
krlmlr

1

Eu tive um problema semelhante em que a tela de desbloqueio não aceitava a entrada do teclado às vezes. A maneira que finalmente resolvi foi matar os vários gnome-screensaver processos em execução, bem como um gnome-screensaver-dialogprocesso. Eu estou supondo que qualquer processo que tenha gerado 2 sessões de proteção de tela de gnomo estava atrapalhando minha tela de desbloqueio. Na verdade, eu deveria estar usando o xscreensaver, então talvez isso tenha mexido com ele.

De qualquer forma, Ctrl+Alt+F1procure por processos de proteção de tela em execução ps -aux | grep screene mate-os todos. Os comandos gnome e xscreensaver listados nas outras respostas não funcionaram para mim.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.