拥有Cron伙伴总是好事!
背景需求
几位系统管理员朋友讨论VPN使用场景时,提出希望实现定时访问控制的需求:在系统更新期间限制访问,或仅允许实习生在特定时段连接。这引发了关于企业IT管理限制的深入讨论。
技术实现
1. OpenVPN命令行工具
通过OpenVPN官方文档获取关键命令:
# 禁止用户命令
/usr/local/openvpn_as/scripts/sacli --user <username> --key "prop_deny" --value "true" UserPropPut
# 断开用户连接命令
/usr/local/openvpn_as/scripts/sacli --user <username> --kill "Schedule Maintenance" DisconnectUser
2. 创建Bash脚本
在~/scripts目录下创建两个脚本文件:
discbanuser.sh (断开并禁止用户):
#!/bin/bash
/usr/local/openvpn_as/scripts/sacli --user $1 --kill "$2" DisconnectUser
/usr/local/openvpn_as/scripts/sacli --user $1 --key "prop_deny" --value "true" UserPropPut
unbanuser.sh (解除用户禁止):
#!/bin/bash
/usr/local/openvpn_as/scripts/sacli --user $1 --key "prop_deny" --value "false" UserPropPut
3. 设置脚本权限
chmod 755 discbanuser.sh
chmod 755 unbanuser.sh
4. 配置Cron定时任务
通过crontab -e添加计划任务:
# 每周一22:00执行断开禁止
0 22 * * 1 /home/medic/scripts/discbanuser.sh ricktest "Scheduled Maintenance"
# 每周一22:30执行解禁
30 22 * * 1 /home/medic/scripts/unbanuser.sh ricktest
测试验证
- 测试用户按计划被断开连接并收到指定消息
- 禁止期间尝试连接失败
- 解禁后恢复连接功能
应用扩展
该方案可延伸用于:
- 定时系统维护窗口
- 合规性访问控制
- 临时权限管理
- 安全事件响应
文中提到的电路板制造测试案例展示了Cron在硬件测试中的创新应用,通过定时脚本检测总线时序问题。
通过这个基础示例,Linux新手可以掌握Cron与Bash脚本结合的实用技巧,为自动化系统管理打下基础。