LINUX.ORG.RU

Как задать автоматическую подстановку параметров в скрипте без параметров

 


0

1

Я новичек в этом деле.

Нужно написать скрипт для запуска настройки mysql_secure_installation без ввода параметров. То есть если вводить данные должен юзер, как без этого юзера обойтись (без интерактивного ввода), есть такие способы? Желательно ограничиться башем.

UPD. mysql_secure_installation отсекаем, так как его можно править (я думал, это бинарник)

Общий вопрос, что делать, если скрипт не bash?

К примеру, как сделать passwd -p 1234

?



Последнее исправление: tolikd (всего исправлений: 1)
Ответ на: комментарий от futurama

шта?

Начало хорошее

Текущий пароль пустой Задать пароль 1234 На все вопросы Yes/no отвечать Y Какой ещё файл конфигурации, никакой конфигурации нет, это скрипт начальной настройки, у него нет аргументов.

# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!


In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...



All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!
tolikd
() автор топика
Ответ на: шта? от tolikd

Задать пароль 1234

у него нет аргументов

ты давай, определяйся уже

На все вопросы Yes/no отвечать Y

expect и не дури людям голову

mekosek
()
Ответ на: комментарий от mekosek

Нет параметров командной строки.

Параметры задаются интерактивно, я это сразу указал.

Так устроит?

tolikd
() автор топика
Ответ на: комментарий от tolikd

нет, конечно.

интерактивный — основанный на взаимодействии, диалоге

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

mekosek
()
Ответ на: комментарий от mekosek

дык, весь вопрос в том и был, как вводить данные автоматом, которые нужно вводить интерактивно

tolikd
() автор топика
Ответ на: комментарий от mekosek

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

А что если бинарник? passwd к примеру с вводом пароля

Мне надо что то вроде passwd -p 1234

tolikd
() автор топика
Ответ на: комментарий от tolikd

Ну так гугли куда и в каком виде этот интерактивный конфигуратор пишет параметры, а закинуть их же туда башем должно быть легко. Если это не шифрованый бинарный формат конечно.

kirill_rrr ★★★★★
()
Ответ на: комментарий от tolikd

Это программа, емнип на tcl, которая ждёт на вход определённые слова, например, password, выплевывает на выхлоп что сказано, например 1234. В инете должно быть полно примеров

pihter ★★★★★
()
Ответ на: комментарий от kirill_rrr

Да разобрался уже

1.ex

#!/usr/bin/expect -f
set pass [lindex $argv 0]
spawn passwd user
expect "New password:"
send "$pass\r"
expect "Retype new password:"
send "$pass\r"
expect eof
./1.ex 1234

spawn passwd user
Changing password for user user.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
tolikd
() автор топика
Ответ на: комментарий от tolikd

Пример с passwd не совсем, скажем так, оптимальный, там проще сделать через

echo 'user:newpassword' | chpasswd

Для expect есть обёртка autoexpect, чтобы самому не пердолиться со всякими экранированиями

zolden ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.