#!/bin/sh #---------------------------------------------------------------------------- # /var/install/bin/mariadb-tools-userdrop [user] [host] # # Creation: 2004-06-10 jv # Last Update: $Id$ # # Copyright (c) 2004 Jens Vehlhaber, jvehlhaber(at)buchenwald(dot)de # Copyright (c) 2012-@@YEAR@@ Holger Bruenjes, holgerbruenjes(at)gmx(dot)net # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. #---------------------------------------------------------------------------- #include eislib . /var/install/include/eislib # check if use cui version . /etc/config.d/setup #debug=true if ${debug:-false} then exec 2>/tmp/$(basename ${0})-trace$$.log set -x ask_debug=true export ask_debug fi # --------------------------------------------------------------------------- # defaults # --------------------------------------------------------------------------- get_defaults() { # default values . /var/lib/mysql/defaults.info user_name='' host_name='' MKTEMP=/bin/mktemp CAT=/bin/cat RM=/bin/rm ASK=/var/install/bin/ask } # --------------------------------------------------------------------------- # check status and access of MariaDB/MySQL Database # --------------------------------------------------------------------------- check_status() { if [ ! -f ${mysql_pid_file} ] then echo mecho --error "MariaDB/MySQL Server is not running." echo exit 1 fi ${mysql_basedir}/mysqladmin status >/dev/null 2>&1 if [ "${?}" -ne 0 ] then echo mecho -n --error 'MariaDB/MySQL Server' mecho -n --std " 'root' " mecho --error 'password is required.' mecho --info 'Please set the root password.' echo exit 1 fi } # --------------------------------------------------------------------------- # run sql string # --------------------------------------------------------------------------- drop_user() { ${mysql_basedir}/mysql -D mysql \ -e "REVOKE ALL PRIVILEGES, GRANT OPTION FROM '${p1}'@'${p2}'; \ DROP USER '${p1}'@'${p2}';" exit 0 } # --------------------------------------------------------------------------- # clear screen or use cui tool # --------------------------------------------------------------------------- run_list() { # if [ "${MENU}" = "/var/install/bin/show-menu.cui" ] # then # ${base_dir}/list-mysql.cui --title="Delete MariaDB/MySQL user:" \ # --server=unix:${socket} \ # --database=mysql \ # --user=root \ # --query="SELECT user, host, select_priv, insert_priv, grant_priv FROM user WHERE user != 'root'" \ # --script="/var/install/bin/mariadb-tools-userdrop" \ # --quest="Delete user/host: %s from system database?" \ # --scriptparam=2 \ # --helpfile=/var/install/help/mariadb \ # --helpname=MARIADB_MENU_USERDROP # exit 0 # fi # --------------------------------------------------------------------------- # get username # --------------------------------------------------------------------------- _user=$(${mysql_basedir}/mysql \ -D mysql \ --skip-column-names \ -e "SELECT user, host, select_priv, insert_priv, \ grant_priv FROM user \ WHERE user != 'root';" | sed 's/\t/:/g') clrhome mecho --info 'Delete MariaDB/MySQL user' echo techo --begin '3 4r 1 17 20 12 12 11' techo --row '' No '' user host select_priv insert_priv grant_priv echo idx=1 for line in ${_user} do _u1=$(echo ${line} | cut -d: -f1) _u2=$(echo ${line} | cut -d: -f2) _u3=$(echo ${line} | cut -d: -f3) _u4=$(echo ${line} | cut -d: -f4) _u5=$(echo ${line} | cut -d: -f5) techo --row '' "${idx}" '' "${_u1}" "${_u2}" "${_u3}" "${_u4}" "${_u5}" idx=$(/usr/bin/expr ${idx} + 1) done techo --end echo echo _ask_file=$(${MKTEMP} -t .XXXXXXXXXXXXX) ${ASK} 'Select' '' "1-$(echo "${_user}" | wc -l)" '^$=Return' '0=Exit' >${_ask_file} rc=${?} read _user_remove < ${_ask_file} ${RM} -f ${_ask_file} if [ ${rc} = 255 ] then _user_remove=0 fi case ${_user_remove} in '') exit 0 ;; 0) exit 127 ;; *) # get action line action_line="$(echo "${_user}" | sed -n "${_user_remove}p" | sed 's/^ *//')" user_name=$(echo ${action_line} | cut -d: -f1) host_name=$(echo ${action_line} | cut -d: -f2) ;; esac /var/install/bin/mariadb-tools-userdrop ${user_name} ${host_name} anykey } # --------------------------------------------------------------------------- # main # --------------------------------------------------------------------------- main() { p1="${1}" p2="${2}" get_defaults check_status if [ -n "${p1}" -a -n "${p2}" ] then drop_user fi run_list exit 0 } # --------------------------------------------------------------------------- # call function main # --------------------------------------------------------------------------- main "${@}" # --------------------------------------------------------------------------- # end # ---------------------------------------------------------------------------