mailcow-reset-admin.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #/bin/bash
  2. if [[ ! -f mailcow.conf ]]; then
  3. echo "Cannot find mailcow.conf, make sure this script is run from within the mailcow folder."
  4. exit 1
  5. fi
  6. echo -n "Checking MySQL service... "
  7. docker-compose ps -q mysql-mailcow > /dev/null 2>&1
  8. if [[ $? -ne 0 ]]; then
  9. echo "failed"
  10. echo "MySQL (mysql-mailcow) is not up and running, exiting..."
  11. exit 1
  12. fi
  13. echo "OK"
  14. read -r -p "Are you sure you want to reset the mailcow administrator account? [y/N] " response
  15. response=${response,,} # tolower
  16. if [[ "$response" =~ ^(yes|y)$ ]]; then
  17. echo -e "\nWorking, please wait..."
  18. source mailcow.conf
  19. docker-compose exec -T mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM admin;"
  20. docker-compose exec -T mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "INSERT INTO admin (username, password, superadmin, created, modified, active) VALUES ('admin', '{SSHA256}K8eVJ6YsZbQCfuJvSUbaQRLr0HPLz5rC9IAp0PAFl0tmNDBkMDc0NDAyOTAxN2Rk', 1, NOW(), NOW(), 1);"
  21. docker-compose exec -T mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM domain_admins WHERE username='admin';"
  22. docker-compose exec -T mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "INSERT INTO domain_admins (username, domain, created, active) VALUES ('admin', 'ALL', NOW(), 1);"
  23. docker-compose exec -T mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM tfa WHERE username='admin';"
  24. echo "
  25. Reset credentials:
  26. ---
  27. Username: admin
  28. Password: moohoo
  29. TFA: none
  30. "
  31. else
  32. echo "Operation canceled."
  33. fi