seekcy用户定期修改密码

/

背景:有些项目需要定期修改seekcy用户密码。如果修改密码不及时,导致密码过期,seekcy用户的定时任务则不生效。
解决方法:定期执行更换密码的脚本,需root用户执行
1、创建更换密码脚本

  1. cd
  2. touch rotate_seekcy_password.sh

2、创建索引文件

  1. cd /root
  2. mkdir log
  3. touch seekcy_password_index

3、创建日志文件

  1. cd /root/log/
  2. touch seekcy_password_change.log

4、编辑脚本文件rotate_seekcy_password.sh

  1. cd
  2. vi rotate_seekcy_password.sh

脚本文件内容如下,全部复制粘贴到文件中,脚本中定义的两个密码可以自行设置。(密码需要保管好)

  1. #!/bin/bash
  2. # 定义两个密码
  3. PASSWORD1="lU2:aI7%aE2]dA0%"
  4. PASSWORD2="cG0^gF1$dL6|dU0("
  5. # 定义密码索引文件
  6. INDEX_FILE="/root/log/seekcy_password_index"
  7. # 如果索引文件不存在,则初始化为 1
  8. if [ ! -f "$INDEX_FILE" ]; then
  9. echo "1" > "$INDEX_FILE"
  10. fi
  11. # 读取当前密码索引
  12. current_index=$(cat "$INDEX_FILE")
  13. # 根据当前索引切换密码
  14. if [ "$current_index" -eq 1 ]; then
  15. echo "seekcy:$PASSWORD2" | chpasswd
  16. echo "2" > "$INDEX_FILE"
  17. echo "seekcy 的密码已切换为 $PASSWORD2" >> /root/log/seekcy_password_change.log
  18. else
  19. echo "seekcy:$PASSWORD1" | chpasswd
  20. echo "1" > "$INDEX_FILE"
  21. echo "seekcy 的密码已切换为 $PASSWORD1" >> /root/log/seekcy_password_change.log
  22. fi
  23. # 设置日志文件权限,仅允许 root 访问
  24. chmod 600 /root/log/seekcy_password_change.log
  25. chmod 600 "$INDEX_FILE"

5、赋予脚本执行权限,并执行脚本

  1. chmod +x rotate_seekcy_password.sh
  2. ./rotate_seekcy_password.sh

6、退出重新登录,看看是否已经更新了密码
7、设置定时任务,编辑 crontab 文件,添加定时任务以定期运行脚本

  1. crontab -e
  2. #添加以下内容(例如,每 30 天执行一次):
  3. 0 0 */30 * * /root/rotate_seekcy_password.sh

转载请注明作者和出处,并添加本页链接。
原文链接: //svn.seekcy.com/810