diff --git a/Makefile b/Makefile index c789eaf..9109c31 100644 --- a/Makefile +++ b/Makefile @@ -37,6 +37,7 @@ start-mariadb: systemctl start mariadb prepare-db: + bash drop-bad-mysql-users.sh ;true mysql < prepare-gitea-db.sql enable-nginx: diff --git a/drop-bad-mysql-users.sh b/drop-bad-mysql-users.sh new file mode 100755 index 0000000..165d5e9 --- /dev/null +++ b/drop-bad-mysql-users.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +for i in $(mariadb -e 'SELECT user,host FROM mysql.user;' -B -N |awk -F'\t' '{print $1"@"$2}'); do + BAD_USER="0" + NO_PREFIX="0" + NO_POSTFIX="0" + USERNAME="$i" + echo "$i"|egrep "^@" + if [ "$?" -eq "0" ] + then + BAD_USER="1" + NO_PREFIX="1" + fi + + echo "$i"|egrep "@$" + if [ "$?" -eq "0" ] + then + BAD_USER="1" + NO_POSTFIX="1" + fi + + if [ "${NO_POSTFIX}" -eq "1" ] + then + USERNAME="'$(echo -n "${i}"|sed -e "s/@//g")'@''" + fi + + if [ "${NO_PREFIX}" -eq "1" ] + then + USERNAME="''@'$(echo -n "${i}"|sed -e "s/@//g")'" + fi + + if [ "${BAD_USER}" -eq "1" ] + then + mysql -e "DROP USER ${USERNAME}"; + fi +done + diff --git a/prepare-gitea-db.sql b/prepare-gitea-db.sql index 5a6aedd..e3d7e29 100644 --- a/prepare-gitea-db.sql +++ b/prepare-gitea-db.sql @@ -1,7 +1,7 @@ -DROP USER ''@'localhost'; CREATE DATABASE gitea CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin'; -CREATE USER 'gitea'@'%' IDENTIFIED BY 'gitea'; -CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'gitea'; -GRANT ALL PRIVILEGES ON *.* TO 'gitea'@'localhost'; -GRANT ALL PRIVILEGES ON *.* TO 'gitea'@'%'; +CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'git'; +GRANT ALL PRIVILEGES ON *.* TO 'eliezer'@'localhost'; +CREATE USER 'gitea'@'%' IDENTIFIED BY 'git'; +GRANT ALL PRIVILEGES ON *.* TO 'git'@'%'; +SHOW GRANTS FOR git; FLUSH PRIVILEGES;