教程

教程

如果我的机器上登录失败 3 次(不是 ssh,而是有人在终端尝试登录,或者有人尝试物理登录),我想运行一个脚本。另外,是否可以在运行脚本之前配置次数?

我研究过 PAM,据我了解,你只能运行.so文件,而且设置起来似乎很麻烦。还有其他选择吗?

我想到的另一件事是,也许 Linux 在登录失败时运行一些脚本。如果确实如此,那么我可以追加sh /var/myscript.sh或其他什么。有任何想法吗?

我似乎无法在互联网上找到涵盖此内容的任何地方。如果可以运行脚本每一个当您登录尝试失败时,我可以处理。

答案1

好吧。我想到了。要非常小心,不要搞砸,因为如果你做错了,你可能会搞砸你的系统。如果您对此感到不舒服,最好先在虚拟机中尝试一下。

教程

  1. 创建您的脚本。在本教程中,我将把脚本放在/var/myscript.sh.您可以安全地将脚本路径替换为脚本所在的位置。确保脚本在任何情况下都不会以 0 以外的任何代码退出。此外,将该命令添加exit 0到脚本末尾以确保其正确退出。在继续之前请务必测试脚本。
  2. 使您的脚本可执行chmod +x /var/myscript.sh
  3. 在真正的工作发生之前,如果你搞砸了,请打开终端并输入sudo -i。只要让窗户开着以防万一。
  4. gksudo nano /etc/pam.d/common-auth。您可以nano用任何文本编辑器替换。要进行备份,您可以这样做sudo cp /etc/pam.d/common-auth /etc/pam.d/common-auth.bkup
  5. 找到下面这一行: auth [success=1 default=ignore] pam_unix.so nullok_secure
  6. 在那一行上,更改success=1success=2。这是为了确保如果登录成功,脚本不会运行。
  7. 将此行直接添加到步骤 5 中的行下方: auth [default=ignore] pam_exec.so seteuid /var/myscript.sh
  8. 保存并关闭。
  9. 无需重新启动或“重新登录”,打开新终端并运行su -l <username>.
  10. 故意输入错误的密码,然后检查脚本是否有效。然后,再次尝试步骤 9,但使用正确的密码。确保您可以登录。

制作人员

感谢大量文档和帖子,特别是这个

相关内容