![누군가 로그인에 실패할 때마다 bash 명령을 실행하는 방법은 무엇입니까?](https://linux55.com/image/168396/%EB%88%84%EA%B5%B0%EA%B0%80%20%EB%A1%9C%EA%B7%B8%EC%9D%B8%EC%97%90%20%EC%8B%A4%ED%8C%A8%ED%95%A0%20%EB%95%8C%EB%A7%88%EB%8B%A4%20bash%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
누군가가 시스템에 로그인을 시도할 때마다 웹캠에서 사진을 찍고 싶습니다. 나는 이것을 할 수 있다는 것을 안다:
mplayer -vo png -frames 1 tv://
누군가 로그인에 실패했을 때 이 명령을 어떻게 실행할 수 있나요?
답변1
lastb
로그아웃된 경우 로그인 실패를 기록합니다 /var/log/wtmp
. 이 파일의 변경 사항을 모니터링할 수 있으며 /var/log/wtmp
또는 를 사용하여 출력을 얻을 수 있습니다 inotify-tools
. 실패한 로그인 메시지를 발견한 경우 언제 오류가 발생했는지 알 수 있으며 원하는 명령을 실행하는 조건을 생성할 수 있습니다.last
lastb
더 자세하게:
파일을 모니터링하기 위해 파일이 변경될 때 트리거됩니다.
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