在特定时间禁用特定用户的 ssh 登录

在特定时间禁用特定用户的 ssh 登录

我想在指定时间 17.00 到 18.00 禁止特定用户(比如 X 和 Y)通过 ssh 登录我的系统。

那么如何实现这一点?

任何帮助,将不胜感激。

答案1

答案是 pam_time[1]

[1]:http://www.linux-pam.org/Linux-PAM-html/sag-pam_time.html“pam_time”。一如既往,编辑 pam 时要小心谨慎,并备份您的配置。

答案2

这是一个想法:

在 sshd_config 中添加以下行:

AllowUsers USER1 USER3 USER3 USER4

此列表应包含您希望允许 ssh 访问系统的所有用户。列表显示后,重新启动 sshd 服务。然后将以下行添加到 roots crontab:

0 17 * * * /usr/bin/sed -i 's/^AllowUsers.*$/AllowUsers USER1 USER2/' && /sbin/service sshd restart
0 18 * * * /usr/bin/sed -i 's/^AllowUsers.*$/AllowUsers USER1 USER2 USER3 USER4/' && /sbin/service sshd restart

这是为我的 centos 6 服务器编写的,但请根据需要更改 crontab 中的路径以及 sshd restart 命令。当然,每次都要将用户列表替换为您想要的列表。

答案3

它的粒度有点低,但我会锁定 Linux 主机上除 root 之外的所有用户进行维护。

0 17 * * * echo "System maintenance in progress" > /run/nologin
0 18 * * * rm /run/nologin

相关内容