Почему кто-то не должен использовать пароли в командной строке?


33

Почему люди боятся писать пароли в командной строке?

Файл истории находится в ~/.history, так что он доступен только пользователю, который выполнил команды (и root).


2
Вы можете избежать записи некоторых команд в свой файл истории. Смотрите ответы в Избегать держать команду в истории
Люк М

5
Юк! Даже если вы определите свой пароль с помощью export mypass=secretи используете a_command --password=$mypass, вы увидите secretв psтаблице.
Люк М

Ответы:


51

Командные строки не просто доступны в истории. Они также доступны, например, в выходных данных ps -ocmdили через /procфайловую систему. ( /proc/<pid>/cmdline), где psих читает.

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


17

Пароли в командной строке - плохая идея. В дополнение к методам, рассмотренным в других ответах:

  • / Proc
  • список процессов ( ps)
  • файл истории пользователя

Пользовательские команды могут также отображаться в следующих местах:

  • журналы аудита
  • / Вар / Журнал / *

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


3
+1 для ссылки / var / log - обратите внимание, что часто важные системные журналы можно отправлять в другое место, и они не обязательно остаются в той же системе. Таким образом, ваши пароли могут случайно также передаваться по сети в виде открытого текста.
Марк Глоссоп

11

Проблема заключается в видимости параметров (в большинстве случаев для других пользователей, даже для пользователя root) во время выполнения команды. Смотрите вывод

ps -eo pid,user,args
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.