Baseado em este post no Ubuntuforums por BkkBonanza .
Esta é uma abordagem usando o PAM e funcionará para todas as tentativas de login com falha. Usando o SSH, um terminal virtual ou através da tela de login normal, não importa, pois tudo é tratado pelo PAM no final.
-
Instale o ffmpeg , vamos usar isso como uma maneira de linha de comando de pegar as imagens da webcam. Atualização : o ffmpeg é removido quando você atualiza para o Ubuntu 14.04. Podemos usar o avconv no lugar do ffmpeg no script abaixo. Não há necessidade de instalar nada separadamente.
-
Crie um script pequeno em algum lugar, por exemplo
/usr/local/bin/grabpicture
com o seguinte conteúdo:#!/bin/bash ts='date +%s' ffmpeg -f video4linux2 -s vga -i /dev/video0 -vframes 3 /tmp/vid-$ts.%01d.jpg exit 0 #important - has to exit with status 0
Altere o
/dev/video0
com o dispositivo de vídeo real da sua webcam e escolha um caminho onde as imagens estão sendo salvas - basta escolher/tmp
. Na versão mais recente do Ubuntu, useavconv
em vez deffmpeg
(sudo apt-get install libav-tools
). -
Torne-o executável, por exemplo
chmod +x /usr/local/bin/grabpicture
. -
Teste, apenas chamando:
/usr/local/bin/grabpicture
. Verifique se você vê arquivos que aparecem em/tmp/vid....jpg
. -
Configure o PAM para chamar isso em todas as tentativas fracassadas.
Observação: faça isso com cuidado - se isso falhar, você não conseguirá acessar seu sistema novamente de maneira regular.
- Abra uma janela de terminal com acesso root (
sudo -i
) e deixe-a aberta - caso você se atrapalhe nas próximas etapas. - Abra
/etc/pam.d/common-auth
no seu editor favorito, por ex. fazendogksudo gedit /etc/pam.d/common-auth
. Lembre-se das etapas a seguir em que a ordem das linhas nesse arquivo é importante. -
Localize a linha abaixo. Por padrão, há uma linha anterior àquela com
pam_deny.so
. No meu sistema 12.04, é assim:auth [success=1 default=ignore] pam_unix.so nullok_secure
-
Nesta linha, altere o
success=1
parasuccess=2
para que ele salte nosso script no sucesso. Este é um passo importante. -
Logo abaixo, adicione um novo para chamar o script:
auth [default=ignore] pam_exec.so seteuid /usr/local/bin/grabpicture
-
Salve e feche o arquivo. Não é necessário reiniciar nada.
- Abra uma janela de terminal com acesso root (
-
Teste.
- Em uma nova janela de terminal, como usuário comum, tente
su -l username
para fazer login como outro usuário com nome de usuáriousername
(mude com um real, é claro). Insira deliberadamente a senha errada. Verifique se isso resulta em uma nova foto. - O mesmo que acima, mas agora digite a senha correta. Verifique se você faz login e isso não resulta em uma foto sendo tirada.
- Em uma nova janela de terminal, como usuário comum, tente
-
Se os testes forem bem-sucedidos, você poderá efetuar logout do seu DE (Unity / KDE / ...) e deverá ver o mesmo ao digitar uma senha incorreta na tela de login.