У мене є кілька інструментів BASH, які використовують цю mysql -e "{command}"
функцію. Введення пароля щоразу, коли я використовую ці інструменти, буде болем, тому, щоб уникнути запису пароля у файл простого тексту з кодом, я зберігаю його в пам'яті (використовую read -s
) і змушую BASH читати його кожного разу, коли він виконує команди.
Mysql все ще вважає, що пароль подається через командний рядок (тому що, таким чином кажучи, він є), і все ще дає мені помилку "Використання пароля в інтерфейсі командного рядка може бути небезпечним".
Для своїх цілей мені не потрібно придушувати це повідомлення. Що я повинен знати, це те, що може зробити це небезпечним? Пароль ніколи не видно фізично, тому серфінг на плечі не міг цього зробити, і навіть той, хто здогадався про мій пароль SSH, не зможе це зробити, оскільки він зберігається в пам'яті, а не в самих скриптах. Чи можливий напад людини середнього чи щось подібне?
bash
прочитали під час запуску команди? Якщо ви це зробите, mysql -p"$pass"
будь-хто може побачити це ps
.
~/.my.cnf
прикладі Ви можете вказати на хоста, виконавши,[client<hostname>]
наприклад,[clientlocalhost]
інструменти MySQL використовуватимуть його автоматично, щоб було простіше та безпечніше