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.