의견 에 mazs 가 지적한 gertvdijk의 Ubuntu에게 물어보기 에이 게시물 을 복사 했습니다 . 이 질문을 끝내기 위해.
을 바탕으로 이 게시물 에 의해 Ubuntuforums에 BkkBonanza .
이것은 PAM을 사용하는 접근 방식이며 모든 실패한 로그인 시도에 작동합니다. 가상 터미널 또는 일반 로그인 화면을 통해 SSH를 사용하면 모든 것이 결국 PAM에서 처리되므로 중요하지 않습니다.
ffmpeg를 설치 하면 웹캠 이미지를 가져 오는 명령 줄 방식으로 사용할 것입니다. 업데이트 : ffmpeg는 Ubuntu 14.04로 업그레이드 할 때 제거됩니다. 아래 스크립트에서 ffmpeg 대신 avconv를 사용할 수 있습니다. 별도로 설치할 필요가 없습니다.
예 /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
대신 사용하십시오 .ffmpeg
sudo apt-get install libav-tools
실행 가능하게 만드십시오 (예 :) chmod +x /usr/local/bin/grabpicture
.
그것을 호출하여 테스트하십시오 : /usr/local/bin/grabpicture
. 에 파일이 나타나는지 확인하십시오 /tmp/vid....jpg
.
실패한 시도마다이를 호출하도록 PAM을 구성하십시오.
참고 :이 작업을주의해서 수행하십시오.이 작업이 실패하면 정기적으로 시스템에 다시 액세스 할 수 없습니다.
- 다음 단계에서 실수 할 경우를 대비하여 루트 액세스 (sudo -i)가있는 터미널 창을 열고 열어 두십시오.
여 /etc/pam.d/common-auth
수행하여 예를 들어 좋아하는 편집기에서 gksudo gedit /etc/pam.d/common-auth
. 이 파일의 행 순서가 중요한 다음 단계에 유의하십시오.
아래 줄을 찾으십시오. 기본적으로와 앞에 한 줄이 pam_deny.so
있습니다. 내 12.04 시스템에서는 다음과 같습니다.
auth [success=1 default=ignore] pam_unix.so nullok_secure
이 줄에서 success = 1을 success = 2로 변경하여 succes의 스크립트를 건너 뜁니다. 이것은 중요한 단계입니다.
바로 아래에 실제 스크립트를 호출 할 새 스크립트를 추가하십시오.
auth [default=ignore] pam_exec.so seteuid /usr/local/bin/grabpicture
파일을 저장하고 닫습니다. 아무것도 다시 시작할 필요가 없습니다.
그것을 테스트하십시오.
- 새 터미널 창에서 일반 사용자
su -l username
로서 사용자 이름을 사용하여 다른 사용자로 로그인하십시오 username
(실제로 변경). 고의로 잘못된 비밀번호를 입력하십시오. 이 결과가 새로운 사진인지 확인하십시오.
- 위와 동일하지만 이제 올바른 비밀번호를 입력하십시오. 로그인하여 사진이 찍히지 않는지 확인하십시오.
테스트에 성공하면 DE (Unity / KDE / ...)에서 로그 아웃 할 수 있으며 로그인 화면에서 잘못된 비밀번호를 입력 할 때도 동일하게 표시됩니다.