拥有 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 脚本结合的实用技巧,为自动化系统管理打下基础。更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码
办公AI智能小助手
评论