v-change-database-host-password 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/bin/bash
  2. # info: change database server password
  3. # options: TYPE HOST USER PASSWORD
  4. #
  5. # The function changes database server password.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. type=$1
  11. host=$2
  12. dbuser=$3
  13. password=$4; HIDE=4
  14. # Includes
  15. source $HESTIA/func/main.sh
  16. source $HESTIA/func/db.sh
  17. source $HESTIA/conf/hestia.conf
  18. #----------------------------------------------------------#
  19. # Verifications #
  20. #----------------------------------------------------------#
  21. args_usage='TYPE HOST DBUSER DBPASS'
  22. check_args '4' "$#" "$args_usage"
  23. is_format_valid 'host' 'dbuser'
  24. is_object_valid "../../conf/$type" 'HOST' "$host"
  25. dbpass="$password"
  26. #----------------------------------------------------------#
  27. # Action #
  28. #----------------------------------------------------------#
  29. # Define email
  30. email=$(grep CONTACT $HESTIA/data/users/admin/user.conf |cut -f2 -d \')
  31. subj="v-change-database-host-password $*"
  32. case $type in
  33. mysql) mysql_connect $host;
  34. query="USE mysql; UPDATE user SET"
  35. query="$query password=PASSWORD('$dbpass')"
  36. query="$query WHERE User='$dbuser';"
  37. query="$query FLUSH PRIVILEGES;"
  38. mysql_query "$query" ;
  39. if [ "$dbuser" == "root" ]; then
  40. echo -e "[client]\npassword='$dbpass'\n" > /root/.my.cnf
  41. chmod 600 /root/.my.cnf
  42. fi;;
  43. pgsql) echo "TBD" >/dev/null;;
  44. esac
  45. update_object_value "../../conf/$type" 'HOST' "$host" '$USER' "$dbuser"
  46. update_object_value "../../conf/$type" 'HOST' "$host" '$PASSWORD' "$dbpass"
  47. #----------------------------------------------------------#
  48. # Hestia #
  49. #----------------------------------------------------------#
  50. # Logging
  51. log_event "$OK" "$ARGUMENTS"
  52. exit