Чому хтось не повинен використовувати паролі в командному рядку?


33

Чому люди бояться писати паролі в командному рядку?

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


2
Ви можете уникнути реєстрації деяких команд у своєму файлі історії. Дивіться відповіді в розділі " Уникайте збереження команд в історії"
Люк М

5
Юк! Навіть якщо ви визначите свій пароль export mypass=secretі використовуєте його a_command --password=$mypass, ви побачите secretв psтаблиці.
Люк М

Відповіді:


51

Командні рядки не просто доступні в історії. Вони також доступні, наприклад, на виході ps -ocmdабо через /procфайлову систему. ( /proc/<pid>/cmdline) де psїх читає.

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


17

Паролі в командному рядку - це лише погана ідея на всьому шляху. Крім методів, обговорених в інших відповідях:

  • / проц
  • список процесів (ps )
  • файл історії користувача

Команди користувача можуть відображатися і в цих місцях:

  • журнали аудиту
  • / var / log / *

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


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

11

Проблема полягає у видимості параметрів (для інших користувачів у більшості випадків навіть для root) під час виконання команди. Дивіться вихід

ps -eo pid,user,args
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.