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

33

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

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

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

Ответы:

51

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

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

RICi
источник
17

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

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

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

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

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

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

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

ps -eo pid,user,args
Хауке Лагинг
источник