如何在每次有人登录失败时触发 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

相关内容