install_update_dovecot.sh: adjust settings og MySQL credentials.

This commit is contained in:
Christoph 2023-03-05 16:18:43 +01:00
parent 0bfa8bc87e
commit d46c65afa7

View File

@ -125,6 +125,14 @@ else
SYSTEMD_EXISTS=true
fi
if [[ -f "/usr/local/mysql/sys-maint.cnf" ]] ; then
DEFAULT_MYSQL_CREDENTIALS="--defaults-file=/usr/local/mysql/sys-maint.cnf"
elif [[ -f "/etc/mysql/debian.cnf" ]] ; then
DEFAULT_MYSQL_CREDENTIALS="--defaults-file=/etc/mysql/debian.cnf"
else
DEFAULT_MYSQL_CREDENTIALS=""
fi
echo
echononl "\tInclude Configuration file.."
@ -195,8 +203,8 @@ fi
[[ -n "$dbname" ]] || dbname="postfix"
[[ -n "$dbuser" ]] || dbuser="postfix"
if [[ -z "$dbhost" ]] ; then
[[ "$dbhost" = "mysql" ]] && dbhost="127.0.0.1"
[[ "$dbhost" = "postgres" ]] && dbhost="/run/postgresql"
[[ "$database" = "mysql" ]] && dbhost="unix:/run/mysqld/mysqld.sock"
[[ "$database" = "postgres" ]] && dbhost="/run/postgresql"
fi
[[ -n "$cert_base_dir" ]] || cert_base_dir="/etc/dovecot/ssl"
@ -471,49 +479,93 @@ if $_new ; then
echo ""
echo "--"
echo ""
echo "Gib den Benutzernamen des/eines MySQL root user an.."
echo "Gib MySQL credentials für den root user an.."
echo ""
_MYSQL_ROOT_USER=root
MYSQL_ROOT_USER=
while [ "X$MYSQL_ROOT_USER" = "X" ]
do
echononl "MySQL-User [${_MYSQL_ROOT_USER}]: "
read MYSQL_ROOT_USER
if [ "X$MYSQL_ROOT_USER" = "X" ]; then
MYSQL_ROOT_USER=$_MYSQL_ROOT_USER
fi
done
echo "Possible values could be:"
echo " -u root -p<Passwort>"
echo " -u root -S /run/mysqld/mysqld.sock"
echo " --login-path=local"
echo " --defaults-file=/usr/local/mysql/sys-maint.cnf"
echo " --defaults-file=/etc/mysql/debian.cnf"
echo " ..."
echo ""
echo -e " Type \"\033[33mNone\033[m\" if no credentials are needed for root user (MariaDB)"
echo ""
MYSQL_CREDENTIALS=""
if [[ -n "${DEFAULT_MYSQL_CREDENTIALS}" ]] ; then
while [[ -z "${MYSQL_CREDENTIALS}" ]] ; do
echononl "MySQL credentials [${DEFAULT_MYSQL_CREDENTIALS}]: "
read MYSQL_CREDENTIALS
if [[ -z "${MYSQL_CREDENTIALS}" ]] ;then
MYSQL_CREDENTIALS="${DEFAULT_MYSQL_CREDENTIALS}"
fi
done
else
while [[ -z "${MYSQL_CREDENTIALS}" ]] ; do
echononl "MySQL credentials: "
read MYSQL_CREDENTIALS
if "${MYSQL_CREDENTIALS}" ]] ; then
echo -e "\n\t\033[33m\033[1mMySQL credentials are required (or type\033[33mNone\033[m) : "
continue
fi
if [[ "$(trim ${MYSQL_CREDENTIALS,,})" = 'none' ]] ; then
MYSQL_CREDENTIALS=""
break
fi
done
fi
echo ""
echo "--"
echo ""
echo "Gib ein Passwort für den root user an.."
echo ""
_MYSQL_ROOT_PW_1="X"
_MYSQL_ROOT_PW_2="Y"
while [ "$_MYSQL_ROOT_PW_1" != "$_MYSQL_ROOT_PW_2" ]
do
echononl "Passworteingabe: "
read -s _MYSQL_ROOT_PW_1
echo
if [ "X$_MYSQL_ROOT_PW_1" = "X" ]; then
echo -e "\n\t\033[33m\033[1mPassworteingabe erforderlich!\033[m\n"
continue
fi
echononl "Passwortwiederholung: "
read -s _MYSQL_ROOT_PW_2
echo
if [ "X$_MYSQL_ROOT_PW_2" = "X" ]; then
echo -e "\n\t\033[33m\033[1mPasswortwiederholung erforderlich!\033[m\n"
continue
fi
if [ "$_MYSQL_ROOT_PW_1" != "$_MYSQL_ROOT_PW_2" ];then
echo -e "\n\t\033[33m\033[1mPassworteingaben sind nicht identisch!\033[m\n"
else
MYSQL_ROOT_PW=$_MYSQL_ROOT_PW_1
fi
done
# echo ""
# echo "--"
# echo ""
# echo "Gib den Benutzernamen des/eines MySQL root user an.."
# echo ""
# _MYSQL_ROOT_USER=root
# MYSQL_ROOT_USER=
# while [ "X$MYSQL_ROOT_USER" = "X" ]
# do
# echononl "MySQL-User [${_MYSQL_ROOT_USER}]: "
# read MYSQL_ROOT_USER
# if [ "X$MYSQL_ROOT_USER" = "X" ]; then
# MYSQL_ROOT_USER=$_MYSQL_ROOT_USER
# fi
# done
#
#
# echo ""
# echo "--"
# echo ""
# echo "Gib ein Passwort für den root user an.."
# echo ""
# _MYSQL_ROOT_PW_1="X"
# _MYSQL_ROOT_PW_2="Y"
# while [ "$_MYSQL_ROOT_PW_1" != "$_MYSQL_ROOT_PW_2" ]
# do
# echononl "Passworteingabe: "
# read -s _MYSQL_ROOT_PW_1
# echo
# if [ "X$_MYSQL_ROOT_PW_1" = "X" ]; then
# echo -e "\n\t\033[33m\033[1mPassworteingabe erforderlich!\033[m\n"
# continue
# fi
# echononl "Passwortwiederholung: "
# read -s _MYSQL_ROOT_PW_2
# echo
# if [ "X$_MYSQL_ROOT_PW_2" = "X" ]; then
# echo -e "\n\t\033[33m\033[1mPasswortwiederholung erforderlich!\033[m\n"
# continue
# fi
# if [ "$_MYSQL_ROOT_PW_1" != "$_MYSQL_ROOT_PW_2" ];then
# echo -e "\n\t\033[33m\033[1mPassworteingaben sind nicht identisch!\033[m\n"
# else
# MYSQL_ROOT_PW=$_MYSQL_ROOT_PW_1
# fi
# done
# MYSQL_CREDENTIALS="-u ${MYSQL_ROOT_USER} -p${MYSQL_ROOT_PW}"
fi
fi
@ -1184,12 +1236,12 @@ EOF
elif [ "$db_driver" = "mysql" ]; then
if ! mysql -u$MYSQL_ROOT_USER -p$MYSQL_ROOT_PW -N -s -e \
if ! mysql ${MYSQL_CREDENTIALS} -N -s -e \
"SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '$dbname'" 2>/dev/null \
| grep $_db_name > /dev/null 2>&1 ; then
echononl "\tCreate database ${dbname}.."
mysql -u$MYSQL_ROOT_USER -p$MYSQL_ROOT_PW -N -s -e \
mysql ${MYSQL_CREDENTIALS} -N -s -e \
"CREATE DATABASE IF NOT EXISTS $dbname CHARACTER SET utf8 COLLATE utf8_general_ci" > ${_log_dir}/error.log 2>&1
if [ "$?" = 0 ]; then
@ -1209,7 +1261,7 @@ EOF
fi
echononl "\tCreate database user ${dbuser}.."
mysql -u$MYSQL_ROOT_USER -p$MYSQL_ROOT_PW -N -s -e \
mysql ${MYSQL_CREDENTIALS} -N -s -e \
"GRANT ALL ON ${dbname}.* TO '${dbuser}'@'localhost' IDENTIFIED BY '$dbpassword'" > ${_log_dir}/error.log 2>&1
if [ "$?" = 0 ]; then
@ -1229,7 +1281,7 @@ EOF
fi
echononl "\tFlushing database privileges.."
mysql -u$MYSQL_ROOT_USER -p$MYSQL_ROOT_PW -N -s -e "FLUSH PRIVILEGES" > ${_log_dir}/error.log 2>&1
mysql ${MYSQL_CREDENTIALS} -N -s -e "FLUSH PRIVILEGES" > ${_log_dir}/error.log 2>&1
if [ "$?" = 0 ]; then
echo -e "$rc_done"