A outra questão que muru vinculou nos comentários ( TTY [1-6]: tela de bloqueio após o atraso (como um protetor de tela) nos oferece a ferramenta para bloquear o tty, vlock
. No nível mais simples, você pode combinar vlock -a
com pm-suspend
em uma função .bashrc
ou um script. Aqui está o meu:
$ cat lockTTY.sh
#!/bin/bash
(sleep 3; sudo pm-suspend) &
vlock -a
O que está acontecendo aqui? Basicamente, estamos lançando pm-suspend
com atraso em subshell, em segundo plano. Enquanto isso, usamos vlock -a
para bloquear todos os ttys. Após 3 segundos, o laptop é suspenso.
A captura aqui, no entanto, é a parte sudo pm-suspend
. Você deve evitar que sudo
peça sua senha para pm-suspend
. Para fazer isso, adicionamos a seguinte linha no final de /etc/sudosers
file
$USERNAME ALL = NOPASSWD: /usr/sbin/pm-suspend
Claro, substitua $USERNAME
pelo seu nome de usuário real. Você pode chamar sudo visudo
para abrir esse arquivo com seu editor de texto padrão configurado em /etc/alternatives/editor
, apenas para estar seguro, mas qualquer editor chamado com as devidas permissões serve.
O que esse script nos permite fazer? Suspender e bloquear com processos ainda em execução. vlock -a
tem grande vantagem em evitar a troca para outros consoles, então não é apenas um console sendo bloqueado, mas todos eles - você não pode simplesmente mudar para outro tty se um estiver bloqueado.
Você também pode suspender primeiro e bloquear o segundo, ou seja, chamar pm-suspend
first e vlock -a
second. Mas isso significa que, após o reinício, é possível que alguém veja sua tela por uma fração de segundo antes de vlock
entrar em ação.
Qual seria a solução simples e suja no caso de você não confiar em vlock
e não quiser instalá-lo? Crie um script /etc/pm/sleep.d/10_lockTTY
com o seguinte conteúdo:
#!/bin/bash
case "" in
hibernate|sleep)
;;
resume|thaw)
for NUM in $(seq 1 6); do service tty$NUM restart; done
;;
esac
Isto irá resetar todos os ttys ao retornar da suspensão, mas lembre-se - qualquer processo que você tenha lá será eliminado.