X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/a431ca343f74b88dab08f79f1cd118dd7b1c2922..fe789bea628b15229156c8a4272c2b6063c9b1a0:/src/plugins/domtool-mysql diff --git a/src/plugins/domtool-mysql b/src/plugins/domtool-mysql index 48af512..49363b1 100755 --- a/src/plugins/domtool-mysql +++ b/src/plugins/domtool-mysql @@ -1,30 +1,32 @@ -#!/bin/sh -e +#!/bin/bash -e + +WHERE="'%.hcoop.net'" case $1 in adduser) USERNAME=$2 PASSWORD=$3 - sudo -H mysql -e "CREATE USER '$USERNAME'@'localhost' IDENTIFIED BY '$PASSWORD';" + sudo -H mysql -e "CREATE USER '$USERNAME'@$WHERE IDENTIFIED BY '$PASSWORD';" ;; passwd) USERNAME=$2 PASSWORD=$3 - sudo -H mysql -e "SET PASSWORD FOR '$USERNAME'@'localhost' = PASSWORD('$PASSWORD');" + sudo -H mysql -e "SET PASSWORD FOR '$USERNAME'@$WHERE = PASSWORD('$PASSWORD');" ;; createdb) USERNAME=$2 DBNAME_BASE=$3 DBNAME="${USERNAME}_${DBNAME_BASE}" - DIR=/afs/hcoop.net/common/databases/$USERNAME/mysql + DIR=/afs/hcoop.net/common/databases/${USERNAME:0:1}/${USERNAME:0:2}/$USERNAME/mysql kinit -k -t /etc/keytabs/root.admin.keytab root/admin aklog - if ! -d $DIR; then + if [ ! -d $DIR ]; then echo WARNING: $DIR must already exist! fi @@ -33,11 +35,28 @@ case $1 in chmod 770 $DIR/$DBNAME ln -sf $DIR/$DBNAME /var/lib/mysql/$DBNAME fs setacl -dir $DIR/$DBNAME/ -acl system:mysql all + sudo -H mysql -e "GRANT CREATE,CREATE TEMPORARY TABLES,SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE VIEW,SHOW VIEW,LOCK TABLES,GRANT OPTION ON TABLE * TO '$USERNAME'@$WHERE;" $DBNAME - sudo -H mysql -e "GRANT CREATE,SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE VIEW,SHOW VIEW,GRANT OPTION ON TABLE * TO '$USERNAME'@'localhost';" $DBNAME sudo -H mysql -e "FLUSH PRIVILEGES;" ;; + + dropdb) + USERNAME=$2 + DBNAME_BASE=$3 + DBNAME="${USERNAME}_${DBNAME_BASE}" + + sudo -H mysql -e "DROP DATABASE $DBNAME;" + ;; + + grant) + USERNAME=$2 + DBNAME_BASE=$3 + DBNAME="${USERNAME}_${DBNAME_BASE}" + + sudo -H mysql -e "GRANT CREATE,SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE VIEW,SHOW VIEW,LOCK TABLES,GRANT OPTION ON TABLE * TO '$USERNAME'@$WHERE;" $DBNAME + ;; + *) - echo "Usage: domtool-mysql [adduser | passwd | createdb ]" + echo "Usage: domtool-mysql [adduser | passwd | createdb | dropdb | grant ]" ;; esac