잘못된 비밀번호를 입력했을 때 웹캠으로 사진을 찍을 수 있습니까?


72

나는 노트북을 사용하고 있습니다. 우분투 시스템을 지원하려고 생각했습니다. 잘못된 비밀번호를 입력하면 나중에 액세스하려는 사람을 나타내는 사진이 촬영됩니다.

나는 주변을 검색했으며 내가 찾은 유일한 것은 Mac 에서이 작업을 수행하는 것입니다. Ubuntu가 동일한 작업을 수행 할 수있는 스크립트를 작성할 수 있습니까?

가능하면 스크립트 또는 소프트웨어가 가능합니다.


lightdm 로그인 화면 또는 비밀번호로 보호 된 스크린 세이버와 같은 사진 (기본적으로 로그인하기 전 또는 로그인 한 후)?
Luis Alvarado

사용자가 잘못된 암호를 입력하면 lightdm 로그인 화면에 예가 표시됩니다.
twister_void

3
Ubuntuforums에서 PAM 통한 "적절한"솔루션 . 좋아요, 이것을 답변으로 게시하겠습니다. :)
gertvdijk

또는 Prey 와 같은 타사 응용 프로그램을 설치하십시오 . 요청한대로 정확하게 수행되지는 않지만 도난시 컴퓨터를 보호하고 복구하는 데 특화되어 있습니다.
Paddy Landau

민감하고 보호 된 환경에있는 경우 사진을 찍는 웹캠 사용에 대해 언급하는 것을 잊지 마십시오.
pl1nk

답변:


59

을 바탕으로 이 게시물 에 의해 Ubuntuforums에 BkkBonanza .

이것은 PAM을 사용하는 접근 방식이며 모든 실패한 로그인 시도에 작동합니다. 가상 터미널 또는 일반 로그인 화면을 통해 SSH를 사용하면 모든 것이 결국 PAM에 의해 처리되므로 중요하지 않습니다.

  1. ffmpeg를ffmpeg 설치 설치 하면 웹캠 이미지를 가져 오는 명령 줄 방식으로 사용할 것입니다. 업데이트 : Ubuntu 14.04로 업그레이드하면 ffmpeg가 제거됩니다. 아래 스크립트에서 ffmpeg 대신 avconv를 사용할 수 있습니다. 별도로 설치할 필요가 없습니다.

  2. /usr/local/bin/grabpicture를 들어 다음 내용 으로 작은 스크립트를 작성하십시오 .

    #!/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

    /dev/video0웹캠의 실제 비디오 장치로를 변경하고 사진이 저장되는 경로를 선택하십시오 /tmp. 최신 버전의 Ubuntu에서는 ( ) avconv대신 사용하십시오 .ffmpegsudo apt-get install libav-tools

  3. 실행 가능하게 만드십시오 (예 :) chmod +x /usr/local/bin/grabpicture.

  4. 그것을 호출하여 테스트하십시오 : /usr/local/bin/grabpicture. 에 파일이 나타나는지 확인하십시오 /tmp/vid....jpg.

  5. 모든 실패한 시도에서이를 호출하도록 PAM을 구성하십시오.

    참고 :이 작업을주의해서 수행하십시오. 실패하면 정기적으로 시스템에 다시 액세스 할 수 없습니다.

    1. 루트 액세스 ( sudo -i)가 있는 터미널 창을 열고 다음 단계에서 실수 할 경우를 대비하여 열린 상태로 두십시오.
    2. 열기 /etc/pam.d/common-auth좋아하는 편집기에서 수행하여 예 gksudo gedit /etc/pam.d/common-auth. 이 파일의 행 순서가 중요한 다음 단계에 유의하십시오.
    3. 아래 줄을 찾으십시오. 기본적으로 와 앞에 한 줄 이 pam_deny.so있습니다. 내 12.04 시스템에서는 다음과 같습니다.

      auth    [success=1 default=ignore]      pam_unix.so nullok_secure
    4. 이 줄 에서에서 succes의 스크립트를 건너 뛰 success=1도록 success=2로 변경하십시오 . 이것은 중요한 단계입니다.

    5. 바로 아래에 실제 스크립트를 호출 할 새 스크립트를 추가하십시오.

      auth    [default=ignore]                pam_exec.so seteuid /usr/local/bin/grabpicture
    6. 파일을 저장하고 닫습니다. 아무것도 다시 시작할 필요가 없습니다.

  6. 그것을 테스트하십시오.

    1. 새 터미널 창에서 일반 사용자 su -l username로서 사용자 이름을 사용하여 다른 사용자로 로그인 해보십시오 username(실제로 변경). 고의로 잘못된 비밀번호를 입력하십시오. 이 결과가 새로운 사진인지 확인하십시오.
    2. 위와 동일하지만 이제 올바른 비밀번호를 입력하십시오. 로그인하여 사진이 찍히지 않는지 확인하십시오.
  7. 테스트에 성공하면 DE (Unity / KDE / ...)에서 로그 아웃 할 수 있으며 로그인 화면에서 잘못된 비밀번호를 입력 할 때도 동일하게 표시됩니다.


9
영리 해요 두 가지 질문이 있습니다. (1) 재부팅 할 때마다 지워 /tmp지기 때문에 이외의 폴더를 사용하지 않아야 /tmp합니까? (2) 실제 비디오 장치가 무엇인지 어떻게 알 수 있습니까?
Paddy Landau

6
이것은 효과가 있지만 3 가지를 추가하고 싶었습니다. (1) 재부팅 할 때 지워지지 않은 / var / tmp를 사용할 수 있습니다. (2) "낮은 그래픽 모드"및 / 또는 "배터리 상태 확인"의 무한 루프에 빠질 수 있으므로이 솔루션을주의해서 사용하십시오. (3) 중단되면 재부팅하고 복구 모드로 들어갑니다 (왼쪽 Shift 키를 누름). "실패 안전 그래픽 모드"를 선택하고 RW가 마운트되어 있는지 확인하십시오. 이제 루트 쉘로 드롭; /etc/pam.d로 cd; chmod common-auth to RW, nano를 사용하여 편집하여 grabpicture 스크립트를 호출하기 위해 추가 된 행을 제거하십시오. 저장하기; 출구; 재부팅하십시오.
Sri

5
PC가 왜 멈추는 지 알아 냈습니다. 답변의 5.3-5.5 단계는 공통 인증 파일의 행에 따라 조정해야합니다. 내 공통 인증에는 pam_unix.so와 pam_deny.so가있는 줄 사이에 pam_winbind.so에 대한 또 다른 줄이 있습니다. 기본적으로 "성공"의 인증 줄은 캡처 스크립트와 pam_deny.so 줄을 건너 뛰어야합니다.
Sri

나는 또한 같은 개념을 시도했지만 위에서 언급 한 답변이 작동하지 않으면 그래픽 오류가 발생합니다. 이미지 또는 오류 메시지가 잘못되어 시도되지 않습니다. .. 다음에 무엇을할지. (gertvdijk)
SachiN

1
지금은 사용되지는 FFmpeg 반대로 어쩌면 avconv 또는 OpenCV의를 사용하도록 업데이트해야합니다
RobotHumans
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.