shell限时ssh登录
今天在网上看到个用shell限时让ssh登录,这个本人没有亲自实验,但这个思路很不错,共享给大家.
通过以下三个脚本程序调用at和系统维护功能即可实现限时登录:
1. 在指定的时间执行该脚本,将在/etc下生成一名为nologin的文件,登录程序在执行时会自动判断此文件是否存,如果存在将不允许用户登录,内容为:
vi /sbin/login.denied
echo " Login Denied " > /etc/nologin
chmod 700 login.denied
2. 在指定的时间执行该脚本,删除/etc/下的nologin文件以允许用户登录,内容为:
vi /sbin/login.allowed
if [ -f /etc/nologin ]; then
rm /etc/nologin
fi
chmod 700 login.allowed
3. 编写一个限制时间的脚本,内容为:
vi /sbin/login.rollback
if [ -f /sbin/login.denied ]; then
at -f /sbin/login.denid 22:00
fi
if [ -f /sbin/login.allowed ]; then
at -f /sbin/login.allowed 8:00
if
chmod 744 /sbin/login.rollback
创建完成以后,把/sbin/login.rollback脚本放进crontab中,在每天凌晨执行:
crontab -e
# roll login script
00 1 * * * /sbin/login.rollback
此种设置的功能是:从晚上10:00到第二天早上8:00静止非root用户登录,显示为系统维护状态.
通过以下三个脚本程序调用at和系统维护功能即可实现限时登录:
1. 在指定的时间执行该脚本,将在/etc下生成一名为nologin的文件,登录程序在执行时会自动判断此文件是否存,如果存在将不允许用户登录,内容为:
vi /sbin/login.denied
echo " Login Denied " > /etc/nologin
chmod 700 login.denied
2. 在指定的时间执行该脚本,删除/etc/下的nologin文件以允许用户登录,内容为:
vi /sbin/login.allowed
if [ -f /etc/nologin ]; then
rm /etc/nologin
fi
chmod 700 login.allowed
3. 编写一个限制时间的脚本,内容为:
vi /sbin/login.rollback
if [ -f /sbin/login.denied ]; then
at -f /sbin/login.denid 22:00
fi
if [ -f /sbin/login.allowed ]; then
at -f /sbin/login.allowed 8:00
if
chmod 744 /sbin/login.rollback
创建完成以后,把/sbin/login.rollback脚本放进crontab中,在每天凌晨执行:
crontab -e
# roll login script
00 1 * * * /sbin/login.rollback
此种设置的功能是:从晚上10:00到第二天早上8:00静止非root用户登录,显示为系统维护状态.
评论: