请求编写定时禁用指定用户的Cron脚本并记录变更日志
解决方案
1. 编写禁用用户的Shell脚本
创建名为disable_user.sh的脚本,替换其中的路径和目标用户为你的实际信息:
#!/bin/bash # 配置文件路径 CONFIG_FILE="/path/to/your/config.txt" # 要禁用的目标用户名 TARGET_USER="test2" # 日志文件路径 LOG_FILE="/path/to/log.txt" # 检查配置文件是否存在 if [ ! -f "$CONFIG_FILE" ]; then echo "$(date '+%Y-%m-%d %H:%M:%S') - 错误:配置文件 $CONFIG_FILE 不存在" >> "$LOG_FILE" exit 1 fi # 检查目标用户是否处于启用状态 ENABLED_USER=$(grep "^${TARGET_USER}:*:\$" "$CONFIG_FILE") if [ -z "$ENABLED_USER" ]; then echo "$(date '+%Y-%m-%d %H:%M:%S') - 提示:用户 $TARGET_USER 不存在或已被禁用" >> "$LOG_FILE" exit 0 fi # 执行禁用操作,同时生成备份文件 sed -i.bak "/^${TARGET_USER}:*:\$/s/:\$/:!\$/" "$CONFIG_FILE" # 记录变更日志 echo "$(date '+%Y-%m-%d %H:%M:%S') - 成功禁用用户 $TARGET_USER" >> "$LOG_FILE" echo "修改前: $ENABLED_USER" >> "$LOG_FILE" MODIFIED_USER=$(grep "^${TARGET_USER}:" "$CONFIG_FILE") echo "修改后: $MODIFIED_USER" >> "$LOG_FILE" echo "------------------------" >> "$LOG_FILE"
2. 赋予脚本执行权限
运行以下命令给脚本添加可执行权限:
chmod +x disable_user.sh
3. 配置Cron定时任务
执行crontab -e打开Cron编辑界面,添加定时规则。例如每天凌晨2点执行:
0 2 * * * /full/path/to/disable_user.sh
Cron时间格式说明:分 时 日 月 周,可按需调整时间,比如每周一凌晨3点执行:0 3 * * 1
4. 日志说明
日志文件log.txt会自动记录每次操作的时间、状态及变更细节,示例内容如下:
2024-05-20 02:00:01 - 成功禁用用户 test2 修改前: test2:*:$5$AQbWnl3q291mtZEe$gxjzJdKgIKXH0Z9fPprk72QfZmceCEtXSaoKKAK68ND 修改后: test2:*:!$5$AQbWnl3q291mtZEe$gxjzJdKgIKXH0Z9fPprk72QfZmceCEtXSaoKKAK68ND ------------------------
内容的提问来源于stack exchange,提问作者Tobi Wright
相关产品推荐
相关产品推荐

