Я иногда делаю echo "secret" | mysql -u root -p ...
. Теперь я спорю о безопасности: может ли кто-нибудь перечислить все процессы, увидев пароль?
Для проверки я попытался, echo "test" | sleep 1000
и команда echo с секретом не была видна в выводе "ps aux". Итак, я предполагаю, что это безопасно - но может ли эксперт по безопасности подтвердить это, пожалуйста? :)
.history
).Ответы:
Ответ зависит от того, какую оболочку вы используете. Многие оболочки имеют
echo
как встроена команда означает , что он не порождает отдельный процесс , и , следовательно , не будет отображаться в процессе листинга. Однако, если вы введете команду/bin/echo
или,./echo
или вы отключите встроенные команды с помощью этойenable -n echo
команды, оболочка не будет использовать свою встроенную команду и вместо этого будет использовать двоичную версию. Это будет отображаться в списке процессов.Если вы используете двоичный файл, а не встроенную оболочку, команда echo будет отображаться столько времени, сколько потребуется для перемещения данных в буфер STDIN другого процесса. Этот буфер имеет конечный размер, поэтому, если в буфере больше данных, чем уместится, команде echo придется некоторое время зависать, пока другой процесс не сможет прочитать некоторые данные из буфера. В большинстве случаев (например, в двух приведенных выше примерах) этот период будет составлять микросекунды. Если вы вставляете дамп SQL размером 20 МБ в MySQL с помощью echo, это может занять больше времени. Независимо от того, насколько коротким является время, если вы используете двоичный файл вместо встроенной оболочки, и кто-то случайно выберет правильное время, он сможет увидеть процесс в списке процессов.
Вы можете избежать этого, поместив секретные данные в файл (с соответствующими разрешениями) и используя файл в качестве STDIN следующим образом:
источник
Для случая mysql ~ / .my.cnf может использоваться для хранения секретов, т.е.
источник
Просто используйте
и нажмите ввод. Затем вам будет предложено ввести пароль, и он не будет виден ни в списке процессов, ни в файлах истории.
источник