누군가 로그인에 실패할 때마다 bash 명령을 실행하는 방법은 무엇입니까?

누군가 로그인에 실패할 때마다 bash 명령을 실행하는 방법은 무엇입니까?

누군가가 시스템에 로그인을 시도할 때마다 웹캠에서 사진을 찍고 싶습니다. 나는 이것을 할 수 있다는 것을 안다:

mplayer -vo png -frames 1 tv://

누군가 로그인에 실패했을 때 이 명령을 어떻게 실행할 수 있나요?

답변1

lastb로그아웃된 경우 로그인 실패를 기록합니다 /var/log/wtmp . 이 파일의 변경 사항을 모니터링할 수 있으며 /var/log/wtmp또는 를 사용하여 출력을 얻을 수 있습니다 inotify-tools . 실패한 로그인 메시지를 발견한 경우 언제 오류가 발생했는지 알 수 있으며 원하는 명령을 실행하는 조건을 생성할 수 있습니다.lastlastb

더 자세하게:

파일을 모니터링하기 위해 파일이 변경될 때 트리거됩니다. while inotifywait -e close_write /var/log/wtmp; do <myscrip>.sh; done

lastb | grep -q "failed login"해당 문자열이 있으면 0이 출력되고 다른 출력 없이 종료되며 이는 로그인 실패 상황이 됩니다.

다음과 같이 Bash에서 조건부 if 문을 만들 수 있습니다.

if lastb | grep -q "failed login";
then <ascript>.sh;
fi;

/var/log/wtmp다음을 통해 이를 생성해야 할 수도 있습니다.touch /var/log/wtmp

관련 정보