Скрипт создания и удаления пользователей в mysql с генерацией пароля

Скрипт создания и удаления пользователей в mysql

Задача – создать пользователя и пароль для mysql.

Именем пользователя будет email, преобразованный следующим образом:
– точки и @заменены на `_`;
– ограничение длины в 15 символов – будте произведено `обрезание` длины username – первые 15 символов.

Скрипт создания пользователя mysql и генерации пароля

#!/bin/bash
DATE=`/bin/date +%Y_%m_%d__%H_%M`
USERNAME=$1
DBNAME=$2
dbpassword=""
####ПОДКЛЮЧЕНИЕ ИДЕТ ЧЕРЕЗ СОЗДАННЫЙ ФАЙЛ #####
###cat ~/.my.cnf
#[client]
#user=root
#password=password
###################
# replace "-" with "_" for database username
#for USERNAME in $USERNAMES
#do
    # create random password
###УБИРАЕМ СИМВОЛЫ `.` и `@` И ОБРЕЗАЕМ ДО 15 СИМВОЛОВ
echo ${USERNAME//\./\_}  | cut -c1-16 > /tmp/username.txt
NAMENEW=`cat /tmp/username.txt`
echo ${NAMENEW//\@/\_}
###ГЕНИРИМ ПАРОЛЬ 12 СИМВОЛОВ
PASSWDDB="$(openssl rand -base64 12)"
echo "CREATING USER echo ${NAMENEW//\@/\_} WITH PASSWORD  $PASSWDDB"
###CREATING USER IN MYSQL
mysql -u root  << EOF
CREATE USER ${NAMENEW//\@/\_}@'%' IDENTIFIED BY '${PASSWDDB}';
GRANT SELECT ON ${DBNAME}.* TO '${NAMENEW//\@/\_}'@'%' IDENTIFIED BY '${PASSWDDB}';
GRANT SELECT ON ${DBNAME}.* TO '${NAMENEW//\@/\_}'@localhost IDENTIFIED BY '${PASSWDDB}';
FLUSH PRIVILEGES;
exit
EOF
####SENDING BY TELEGRAM####
sh /root/scripts/telegram.sh "${NAMENEW//\@/\_} created with password $PASSWDDB"
#####SEND TO FILE###########
echo "${NAMENEW//\@/\_} $PASSWDDB $DATE" > /root/scripts/userslist.txt
####REMOVE TEMOP FILE########
rm /tmp/username.txt
####CAT CURRENT USERLIST##############
cat /root/scripts/userslist.txt;

Скрипт удаления пользователя mysql

#!/bin/bash
DATE=`/bin/date +%Y_%m_%d__%H_%M`
USERNAME=$1
###УБИРАЕМ СИМВОЛЫ `.` и `@` И ОБРЕЗАЕМ ДО 15 СИМВОЛОВ
echo ${USERNAME//\./\_}  | cut -c1-16 > /tmp/${USERNAME//\./\_}
NAMENEW=`cat /tmp/${USERNAME//\./\_}`
mysql -u root  << EOF
DROP USER ${NAMENEW//\@/\_}@'%';
DROP USER ${NAMENEW//\@/\_}@localhost;
FLUSH PRIVILEGES;
exit
EOF
####SENDING BY TELEGRAM####
sh /root/scripts/telegram.sh "${NAMENEW//\@/\_} DROPED"
#####SEND TO FILE###########
echo "${NAMENEW//\@/\_} $DATE" >> /root/scripts/userslist_dropped.txt
####REMOVE TEMOP FILE########
rm /tmp/${USERNAME//\./\_}
####CAT CURRENT USERLIST##############
cat /root/scripts/userslist_dropped.txt;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.