From caf1a9291335e598e717cdf5a596ae8a8f60cf34 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 29 May 2020 16:10:58 +0200 Subject: [PATCH] Bug 25622: Use special chars in DB password (koha-create) On bug 23250 we decided to generate a password without special chars then add a '@' at the end to comply with MySQL policy. That is wrong, we should handle correctly the special chars we don't want to be part of the password. Test plan: 1. mysqlpwd="$(pwgen -s -y 32 1)" echo $mysqlpwd mysqlpwd="$(echo $mysqlpwd | tr -d :\'\&\\\\\<\>\/ | cut -c1-16)" echo $mysqlpwd Confirm that in the second line you don't see one of the following chars : ' & \ < > / 2. Copy from src and edit /usr/sbin/koha-create to add an echo $mysqlpwd Create several instances, like: koha-create --create-db x koha-create --create-db xx koha-create --create-db xxx ... When you see a password with a special chars, do: koha-shell xxx grep '' $KOHA_CONF And make sure the password does not contain "__DB_PASS__" --- debian/scripts/koha-create | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/debian/scripts/koha-create b/debian/scripts/koha-create index b90e7d4e23..3be332fce4 100755 --- a/debian/scripts/koha-create +++ b/debian/scripts/koha-create @@ -592,8 +592,12 @@ if [ "$op" = create ] || [ "$op" = request ] || [ "$op" = use ] then if [ "$mysqlpwd" = "" ] then - mysqlpwd="$(pwgen -s 15 1)" - mysqlpwd="$mysqlpwd@" + # over-size, so when problematic chars are removed, + # still likely 16 characters left. + # Removing : ' & \ < > / + mysqlpwd="$(pwgen -s -y 32 1)" + mysqlpwd="$(echo $mysqlpwd | tr -d :\'\&\\\\\<\>\/ | cut -c1-16)" + fi else mysqlpwd="$(getinstancemysqlpassword $name)" -- 2.20.1