#!/bin/bash # info: change database username # options: USER DATABASE DBUSER [DBPASS] # # The function for changing database user. It uses the #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument defenition user=$1 database=$2 dbuser="$user"_"$3" dbpass=$4 # Includes source $VESTA/func/main.sh source $VESTA/func/db.sh source $VESTA/func/rebuild.sh source $VESTA/conf/vesta.conf # Hiding password A4='******' EVENT="$DATE $TIME $SCRIPT $A1 $A2 $A3 $A4 $A5 $A6 $A7 $A8 $A9" #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# check_args '3' "$#" 'USER DATABASE DBUSER [DBPASS]' validate_format 'user' 'database' 'dbuser' if [ ! -z "$dbpass" ]; then validate_format 'dbpass' fi is_system_enabled "$DB_SYSTEM" 'DB_SYSTEM' is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" is_object_valid 'db' 'DB' "$database" is_object_unsuspended 'db' 'DB' "$database" # Compare old and new user old_dbuser=$(get_object_value 'db' 'DB' "$database" '$DBUSER') if [ "$old_dbuser" = "$dbuser" ]; then exit fi #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Set new dbuser update_object_value 'db' 'DB' "$database" '$DBUSER' "$dbuser" # Get database values get_database_values # Rebuild datbase case $TYPE in mysql) rebuild_mysql_database ;; pgsql) rebuild_pgsql_database ;; esac # Change password if [ ! -z "$dbpass" ]; then case $TYPE in mysql) change_mysql_password ;; pgsql) change_pgsql_password ;; esac # Update config value update_object_value 'db' 'DB' "$database" '$MD5' "$md5" fi # Remove old user check_old_dbuser=$(grep "DBUSER='$old_dbuser'" $USER_DATA/db.conf) if [ -z "$check_old_dbuser" ]; then case $TYPE in mysql) delete_mysql_user ;; pgsql) delete_pgsql_user ;; esac fi #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# # Logging log_history "changed $database database user to $dbuser" log_event "$OK" "$EVENT" exit