Tirando uma foto com uma webcam de laptop após digitar uma senha incorreta

10

Gostaria de configurar meu laptop para que, se uma senha errada for digitada quando a tela estiver bloqueada, uma foto seja tirada usando a webcam do laptop. Examinei xlock(do pacote xlockmore ), mas não há opção para executar uma ação personalizada quando uma senha incorreta é inserida.

Existe uma pergunta semelhante no SuperUser, mas apenas o Windows é direcionado: Tirar uma foto depois de digitar a senha incorreta .

(Para quem gosta de fotos engraçadas de gatos: Meu laptop está configurado para tirar uma foto após três tentativas incorretas de senha .)

Petr Pudlák
fonte
2
Você já conferiu este github.com/jeroennijhof/pam_script
Hristo Mohamed
7
você pode ter uma resposta aqui também askubuntu.com/questions/253189/...
mazs
@mazs Obrigado, é mais ou menos o que eu estava procurando.
Petr Pudlák
Agora entendo por que todos os hackers estão trabalhando com capuz em um quarto escuro.
Utku

Respostas:

4

Copiei este post no ask Ubuntu por gertvdijk , apontado por mazs nos comentários. No esforço de encerrar esta questão.


Baseado neste post no Ubuntuforums do BkkBonanza .

Essa é 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.

  1. Instale o ffmpeg , vamos usar isso como uma forma de linha de comando para capturar 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 é necessário instalar nada separadamente.

  2. Crie um pequeno script em algum lugar, por exemplo, /usr/local/bin/grabpicturecom 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
    

    Mude o / dev / video0 com o dispositivo de vídeo real da sua webcam e escolha um caminho onde as fotos serão salvas - eu apenas escolhi /tmp. Na versão mais recente do Ubuntu, use em avconvvez de ffmpeg( sudo apt-get install libav-tools).

  3. Torne executável, por exemplo chmod +x /usr/local/bin/grabpicture.

  4. Testá-lo, por apenas chamando-o: /usr/local/bin/grabpicture. Verifique se você vê os arquivos aparecendo /tmp/vid....jpg.

  5. Configure o PAM para chamar isso em todas as tentativas com falha.

    Nota: faça isso com cuidado - se isso falhar, você não poderá obter acesso ao seu sistema novamente de maneira regular.

    1. Abra uma janela do terminal com acesso root (sudo -i) e deixe-a aberta - caso você estrague as próximas etapas.
    2. Abra /etc/pam.d/common-authno seu editor favorito, por exemplo, fazendo gksudo gedit /etc/pam.d/common-auth. Lembre-se das etapas a seguir que importam a ordem das linhas neste arquivo.

    3. Localize a linha abaixo. Por padrão, há uma linha antes da linha com pam_deny.so. No meu sistema 12.04, fica assim:

      auth    [success=1 default=ignore]      pam_unix.so nullok_secure
      
    4. Nesta linha, mude o sucesso = 1 para o sucesso = 2 para que ele pule o script com sucesso. Este é um passo importante.

    5. Logo abaixo, adicione um novo para chamar o script real:

      auth    [default=ignore]                pam_exec.so seteuid /usr/local/bin/grabpicture
      
    6. Salve e feche o arquivo. Não há necessidade de reiniciar nada.

  6. Teste-o.

    1. Em uma nova janela do terminal, como usuário comum, tente su -l usernamefazer login como outro usuário com nome de usuário username(mude com o nome real, é claro). Digite deliberadamente a senha errada. Verifique se isso resulta em uma nova imagem.
    2. 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.
  7. Se os testes foram bem-sucedidos, você pode sair do seu DE (Unity / KDE / ...) e verá o mesmo ao digitar uma senha errada na tela de login.

Centimane
fonte