我希望在用户登录时包含失败的登录尝试计数。
我创建了:
/usr/local/bin/dynmotd
其中包含
#!/bin/bash
FAILLOG=`faillog -u`
echo -e "
$FAILLOG
"
并添加/usr/local/bin/dynmotd
到/etc/profile
问题是我得到/var/log/faillog: Permission denied
每当我以普通用户身份登录时。有没有办法安全地临时提升权限以在 motd 上运行该命令,或者临时授予该用户访问失败日志的权限以获得该响应?我不想让所有用户永久访问失败日志。
更新
尝试过这个:
#!/bin/bash
CURRENTUSER=`whoami`
sudo -u bob setfacl -m u:$CURRENTUSER:rx /var/log/faillog
FAILLOG=`sudo -u bob faillog -u $CURRENTUSER`
echo -e "
$FAILLOG
"
使用 向 sudoers 添加添加的“bob” NOPASSWD:
,当我以“bob”身份登录时效果很好,但如果我尝试以“bob2”身份登录,则会要求输入 sudoers 密码。
答案1
我建议创建一个以 root 身份运行的脚本。让它每小时运行一次,将“faillog -a”的输出写入每个人都可以访问的文本文件中。然后让 MOTD grep 当前用户的该文件。这将避免进行任何不必要的权限更改或向不需要的人授予 sudo 访问权限。