Рейтинг:1

автоматизировать сценарий mysql mysql_secure_installation, но не так, как ожидалось

флаг ky

mysql 5.7.34 убунту 18.04

Скрипт, который я написал my.sh

#!/USR/бен/ожидание

порождать mysql_secure_installation


ожидать {
             "Нажмите y|Y для Да, любую другую клавишу для Нет" { send "n\r"; exp_continue }
             "Новый пароль" { отправить "123456\r"; exp_continue }
             "Повторно введите новый пароль" { send "123456\r"; exp_continue }
             "Удалить анонимных пользователей?" { отправить "г\г"; exp_continue }
             "Запретить удаленный вход в систему root" { send "n\r"; exp_continue }
             "Удалить тестовую базу данных и доступ к ней" { send "Y\r"; exp_continue }
             "Обновить таблицы привилегий сейчас" { send "Y\r"; exp_continue }
     }

./my.sh

Результаты операции следующие

Почему скрипт не выполнился должным образом

root@fa244a50dc06:/# ./my.sh
порождать mysql_secure_installation

Обеспечение безопасности развертывания сервера MySQL.

Подключение к MySQL с использованием пустого пароля.

VALIDATE PASSWORD PLUGIN можно использовать для проверки паролей.
и повысить безопасность. Проверяет надежность пароля
и позволяет пользователям устанавливать только те пароли, которые
достаточно безопасно. Хотите установить плагин VALIDATE PASSWORD?

Нажмите y|Y для Да, любую другую клавишу для Нет: n
Пожалуйста, установите пароль для root здесь.

Новый пароль:

Повторно введите новый пароль:
По умолчанию установка MySQL имеет анонимного пользователя,
позволяя любому войти в MySQL без необходимости иметь
учетная запись пользователя, созданная для них. Это предназначено только для
тестирование и сделать установку более плавной.
Вы должны удалить их, прежде чем переходить к производству
среда.

Удалить анонимных пользователей? (Нажмите y|Y для Да, любую другую клавишу для Нет) : n

 ... пропуская.


Обычно пользователю root должно быть позволено подключаться только из
«локальный хост». Это гарантирует, что кто-то не сможет угадать
пароль root из сети.

Запретить удаленный вход в систему root? (Нажмите y|Y для Да, любую другую клавишу для Нет) : n

 ... пропуская.
По умолчанию MySQL поставляется с базой данных с именем «test», которая
любой может получить доступ. Это также предназначено только для тестирования,
и должны быть удалены перед переходом в производство
среда.


Удалить тестовую базу данных и доступ к ней? (Нажмите y|Y для Да, любую другую клавишу для Нет) : n

 ... пропуская.
Повторная загрузка таблиц привилегий гарантирует, что все изменения
сделанные до сих пор вступят в силу немедленно.

Перезагрузить таблицы привилегий сейчас? (Нажмите y|Y для Да, любую другую клавишу для Нет) : n

 ... пропуская.
Все сделано!

Рейтинг:0
флаг ky
#!/USR/бен/ожидание

порождать mysql_secure_installation


ожидать {
             "ПРОВЕРИТЬ ПАРОЛЬ ПЛАГИН можно использовать для проверки паролей" { send "n\r"; exp_continue }
             "Новый пароль" { отправить "123456\r"; exp_continue }
             "Повторно введите новый пароль" { send "123456\r"; exp_continue }
             "Удалить анонимных пользователей?" { отправить "г\г"; exp_continue }
             "Запретить удаленный вход в систему root" { send "n\r"; exp_continue }
             "Удалить тестовую базу данных и доступ к ней" { send "Y\r"; exp_continue }
             "Обновить таблицы привилегий сейчас" { send "Y\r"; exp_continue }
        }
Рейтинг:0
флаг in

Первая строка в вашем ожидать переопределяет все остальное:

Нажмите y|Y для Да, любую другую клавишу для Нет

Эта строка соответствует каждой строке, поэтому отправить "н\р"; exp_continue будет запущен. Следовательно, все н ответы.

Простейшим решением, вероятно, было бы поместить эту строку в конец ожидать массив, чтобы он действовал как универсальный по умолчанию.

qqPPPPbb avatar
флаг ky
спасибо за ответ, я выбрал не то совпадение

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.