Intereting Posts
Проблема с установкой CPAN XML :: RSS Как указать общую родительскую папку для файлов tar из разных источников в Найти в тексте все слова, которые появляются 10 или более раз Ubuntu говорит, что дисковое пространство исчерпано. Нет доступа к терминалу. Вход только гостя. КАК я могу стереть дисковое пространство сейчас? iscsi target к папке установленного парирования? Использование sed для замены слов настраивать пакет нестандартным способом и разрешать требования к библиотеке Запустить программу с окружением, установленным в переменные в файле Закрытие терминала при использовании команды «login» Издевательство над псевдонимом (оч) stty на старой AT & T unix: как добавить End-key для «end of line»? Chrome OS: окно Crosh и имя хоста Ошибка при попытке установить файловую систему NFSv4 Что означает longterm на kernel.org? Использование winexe для запуска команд «wmic» на машине Windows

Как скрыть пароли в команде 'watch'?

Я использую watch для отслеживания прогресса ведомого сервера репликации MySQL. Теперь, когда я установил его, пароль появляется в заголовке выходного сигнала. Я не очень беспокоюсь, что кто-то украдет пароль, но, по принципу, я бы предпочел не показывать голый пароль любому, кто случайно блуждает и смотрит через мое плечо.

Командная строка, которую я сейчас использую с watch :

 watch -n1 -d mysql -pmypass -e "'show slave status\G'" 

Должен ли я просто закопать команду mysql в крошечном сценарии оболочки?

Лучшим вариантом, чем предоставление пароля в командной строке, является ~/.my.cnf файла ~/.my.cnf с учетными данными в нем:

 [client] password=something 

Таким образом, они также защищены от того, кто смотрит на выход ps или историю вашей оболочки.

Тем не менее, вы можете полностью отключить название --no-title опцией -t или --no-title , которая будет:

Отключите заголовок, показывающий интервал, команду и текущее время в верхней части дисплея, а также следующую пустую строку.

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

Он будет отображаться не только на вашем экране, но и в ps в вашей ~/.bash_history (хотя это должно быть доступно только вам и администраторам) и, возможно, в некоторых журналах аудита или производительности.

Вы не должны передавать пароли в качестве аргументов для команд. Аргументы команд должны считаться общедоступными.

Для mysql используйте ~/.my.cnf как показал Майкл, или в другом файле (только для чтения), переданном как --defaults-extra-file=the-file

Вы в порядке, набрав пароль при запуске? Вы можете прочитать его в сценарии bash, не делая его видимым в терминале, сохраняя историю и т. Д.

 #!/bin/bash if ! IFS= read -rs -p "Enter password: " password < /dev/tty 2> /dev/tty then echo "Password entry failed" exit 1 fi somecommand -user me -password $password 

Глядя на другой ответ, это уязвимо для проблемы ps , хотя, поскольку там будет процесс для somecommand