* use random password for mailcow-reset-admin.sh * added curly braces and removed newline from hashed password string
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| [[ -f mailcow.conf ]] && source mailcow.conf
 | |
| [[ -f ../mailcow.conf ]] && source ../mailcow.conf
 | |
| 
 | |
| if [[ -z ${DBUSER} ]] || [[ -z ${DBPASS} ]] || [[ -z ${DBNAME} ]]; then
 | |
| 	echo "Cannot find mailcow.conf, make sure this script is run from within the mailcow folder."
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| echo -n "Checking MySQL service... "
 | |
| if [[ -z $(docker ps -qf name=mysql-mailcow) ]]; then
 | |
| 	echo "failed"
 | |
| 	echo "MySQL (mysql-mailcow) is not up and running, exiting..."
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| echo "OK"
 | |
| read -r -p "Are you sure you want to reset the mailcow administrator account? [y/N] " response
 | |
| response=${response,,}    # tolower
 | |
| if [[ "$response" =~ ^(yes|y)$ ]]; then
 | |
| 	echo -e "\nWorking, please wait..."
 | |
|   random=$(</dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16})
 | |
|   password=$(docker exec -it $(docker ps -qf name=dovecot-mailcow) doveadm pw -s SSHA256 -p ${random} | tr -d '\r')
 | |
| 	docker exec -it $(docker ps -qf name=mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM admin WHERE username='admin';"
 | |
|   docker exec -it $(docker ps -qf name=mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM domain_admins WHERE username='admin';"
 | |
| 	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', '${password}', 1, 1);"
 | |
| 	docker exec -it $(docker ps -qf name=mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM tfa WHERE username='admin';"
 | |
| 	echo "
 | |
| Reset credentials:
 | |
| ---
 | |
| Username: admin
 | |
| Password: ${random}
 | |
| TFA: none
 | |
| "
 | |
| else
 | |
| 	echo "Operation canceled."
 | |
| fi
 |