mailcow-reset-admin.sh 1.5 KB

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