我能否实现一个协议,这样如果您 3 次输入错误的 root 密码,则不允许再次尝试,直到重新启动计算机?或者甚至关闭计算机然后向所有者发送电子邮件,告知有人试图以 root 身份登录 3 次?
答案1
视情况而定!如果您的登录欢迎程序遵守 pam.d common-auth 文件中的内容,那么您可以...
打开您的 common-auth 文件进行编辑sudo nano /etc/pam.d/common-auth
。在最顶部添加以下两行。
auth required pam_tally.so onerr=fail deny=3
account required pam_tally.so reset
(对于 common-auth 可能有更好的配置选项,但是这个似乎有效;如果有人可以改进我愿意进行编辑)
要在重启时重置帐户锁,请使用以下命令编辑 root 的 crontabsudo crontab -e
并在底部添加以下行:
@reboot /usr/bin/faillog -a -r
如果您想发送电子邮件,那么最好制作一个在启动时运行的脚本(通过 root 的 crontab)来完成您想要的一切,而不是使用 root 的 crontab 运行上述命令。该脚本看起来类似于以下内容...
#!/bin/bash
# Do check to see if specific account is locked
user=NAME_OF_ACCT_TO_CHECK
failCount=$(faillog -u $user | grep -P "^$user" | awk '{print $2}')
if [ $failCount -ge 3 ]; then
# send your email
# do whatever else you want to do when account is locked
fi
# reset counts
faillog -a -r