Posso fazer a webcam tirar uma foto quando uma senha incorreta é digitada?

70

Estou usando um laptop. Eu estava pensando em ter um suporte na minha máquina Ubuntu. Quando uma senha incorreta é digitada, uma foto é tirada posteriormente, revelando quem está tentando obter acesso.

Eu pesquisei e a única coisa que eu encontrei é coisa para fazer isso em Macs. É possível escrever um script para o Ubuntu fazer o mesmo.

Se possível, então o que é um script ou Software para fazer isso acontecer.

    
por twister_void 09.02.2013 / 20:59

1 resposta

58

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.

  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 há necessidade de instalar nada separadamente.

  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
    

    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, 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 - caso você se atrapalhe 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 anterior àquela com pam_deny.so . No meu sistema 12.04, é assim:

      auth    [success=1 default=ignore]      pam_unix.so nullok_secure
      
    4. Nesta linha, altere o success=1 para success=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 gertvdijk 09.02.2013 / 21:51