Tirar uma foto com uma webcam laptop depois de digitar uma senha incorreta

10

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

Existe uma pergunta semelhante no SuperUser, mas apenas segmenta o Windows: Tirando uma foto após digitar a senha errada .

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

    
por Petr Pudlák 13.06.2016 / 17:19

1 resposta

1

Copiado este post em perguntar ao Ubuntu por gertvdijk , apontado por mazs nos comentários. No esforço de fechar esta questão.

Com base em esta postagem 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.

  1. 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 é necessário instalar nada em separado.

  2. 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
    

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

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

  4. Teste, apenas chamando: /usr/local/bin/grabpicture . Verifique se você vê arquivos que aparecem em /tmp/vid....jpg .

  5. 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.

    1. Abra uma janela de terminal com acesso root (sudo -i) e deixe-a aberta - para o caso de você errar nas próximas etapas.
    2. Abra /etc/pam.d/common-auth no seu editor favorito, por ex. fazendo gksudo gedit /etc/pam.d/common-auth . Lembre-se das etapas a seguir em que a ordem das linhas nesse arquivo é importante.

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

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

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

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

  6. Teste.

    1. 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ário username (mude com um real, é claro). Insira deliberadamente a senha errada. Verifique se isso resulta em uma nova foto.
    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 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.

por 08.09.2016 / 23:50