화면이 잠겨 있는 동안 잘못된 비밀번호를 입력하면 노트북의 웹캠을 사용하여 사진을 찍을 수 있도록 노트북을 설정하고 싶습니다. 나는 xlock
(에서) 확인했다록모어패키지), 잘못된 비밀번호를 입력한 경우 사용자 지정 작업을 실행하는 옵션이 없습니다.
SuperUser에 대해서도 비슷한 질문이 있지만 Windows에만 해당됩니다.비밀번호를 잘못 입력한 후 사진을 찍으세요..
(재미있는 고양이 사진을 좋아하시는 분들을 위해:내 노트북은 비밀번호를 3번 잘못 입력하면 사진을 찍도록 설정되어 있습니다..)
답변1
복사됨이 게시물우분투에 물어보세요게티프딕, 님이 지적한마즈댓글에. 이 문제를 끝내십시오.
이는 모든 실패한 로그인 시도에 적용되는 PAM을 사용하는 방법입니다. 가상 터미널인 SSH를 사용하거나 일반 로그인 화면을 통해 모든 것이 궁극적으로 PAM에 의해 처리되기 때문에 문제가 되지 않습니다.
설치하다ffmpeg, 웹캠 이미지를 가져오는 명령줄 방식으로 사용할 것입니다. 업데이트: Ubuntu 14.04로 업그레이드하면 ffmpeg가 제거됩니다. 아래 스크립트에서는 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
이 줄에서 성공 시 스크립트를 건너뛸 수 있도록 성공=1을 성공=2로 변경합니다. 이것은 중요한 단계입니다.
여기에 실제 스크립트를 호출하는 새 스크립트를 추가하세요.
auth [default=ignore] pam_exec.so seteuid /usr/local/bin/grabpicture
파일을 저장하고 닫습니다. 아무것도 다시 시작할 필요가 없습니다.
시험을 봐요.
- 새 터미널 창에서 일반 사용자로 사용자 이름 (물론 실제 사용자 이름으로 변경됨)을
su -l username
사용하여 다른 사용자로 로그인 해 보십시오.username
의도적으로 잘못된 비밀번호를 입력했습니다. 결과적으로 새 이미지가 생성되는지 확인하세요. - 위와 동일하지만 이제 올바른 비밀번호를 입력하세요. 로그인되어 있는지, 사진 촬영이 되지 않는지 확인하세요.
- 새 터미널 창에서 일반 사용자로 사용자 이름 (물론 실제 사용자 이름으로 변경됨)을
테스트가 성공하면 DE(Unity/KDE/...)에서 로그아웃할 수 있으며 로그인 화면에서 잘못된 비밀번호를 입력해도 동일한 결과가 표시됩니다.