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

Ниже приведен образ процесса, который я предпринял для создания пользователя в bash в Linux.

Создание пользователя и назначение пароля в bash

Я понимаю, что пароль не должен отображаться для целей безопасности, но я имею в виду, почему звездочки (или введенные символы) не отображаются?

3 Solutions collect form web for “Почему введенный пароль не отображается?”

Потому что так мы делаем вещи на земле. 🙂 Это дает немного дополнительной безопасности, не отображая кучу звездочек. Таким образом, тот, кто видит ваш экран, не может видеть длину вашего пароля.

Но я должен признать, что немного пугающе не получать отзывов, когда вы вводите пароль, особенно если у вас плохая клавиатура. Таким образом, большинство диалоговых окон GUI на системах * nix дают вам некоторую обратную связь, например, с помощью звездочек или чаще ⬤. И некоторые даже отображают каждый символ, когда вы его вводите, но затем сразу же заменяете его символом * или ⬤, но это не так хорошо, если кто-то может смотреть через плечо. Или, если у них есть устройство, которое может захватывать и декодировать видеосигнал, отправляемый с вашего компьютера на монитор.

Каков самый простой способ скрыть ввод пользователя?

Не отображать его!

Скрытие паролей, когда они печатаются, является старой традицией. В смысле имеет смысл с точки зрения безопасности в большинстве контекстов: если кто-то смотрит на ваши плечи, вы не хотите, чтобы было легко увидеть, что вы печатаете. (Некоторые современные рекомендации по безопасности, например, 1 2 3 4 5 , рекомендуют иметь возможность сделать пароль видимым, потому что это позволяет пользователю выбирать более сложные пароли и уверенность в том, что они не будут тратить время на установление невидимых опечатки. Самый большой риск – это не серфинг для плеч, а грубая сила, угадывающая, возможно, в автономном режиме.)

Решив, что пароль должен быть скрыт, разработчики должны были решить, как это сделать. Терминал имеет режим, в котором отображается пользовательский ввод (эхо-сигнал), и режим, когда пользовательский ввод не отображается (эхо-сигнал выключен). Режим эхоподавления имеет внутреннее существование таким образом: это режим, при котором терминал не выполняет дополнительную работу по эховому вводу пользователя. Этот режим также должен существовать для приложений, где ввод ключа не вставляет этот символ, а вместо этого вызывает некоторый ярлык приложения, привязанный к этому ключу. Таким образом, команды, такие как passwd просто устанавливают терминал в режим эхо-сигнала при чтении пароля.

Печать звездочек для каждого символа потребует дополнительной работы по внедрению только для относительно небольшой выгоды, которую разработчикам команды passwd не хотелось делать. Терминальный режим для печати звездочек не существует, потому что это будет очень специализированная функция, полезная только при вводе паролей.

Кстати, если вы хотите увидеть свой пароль при его изменении, вы можете использовать cat | passwd cat | passwd (по крайней мере, на некоторых системах – в некоторых версиях passwd требуется опция, такая как cat | passwd --stdin а некоторые вообще этого не принимают). (Вы можете даже сделать { echo 'current password'; echo 'new password'; echo 'new password'; } | passwd , но не делайте этого: он сохранит пароли в истории оболочки, из которых много больше риска утечки.) Упорядочить это с командами, которые читают пароль с терминала, а не каким-либо их стандартным вводом, таким как sudo или ssh , является более сложным; если у вас есть доступный графический интерфейс, вы можете использовать ssh-askpass, который показывает, сколько символов вы набрали ( SUDO_ASKPASS=/usr/bin/ssh-askpass sudo -A для sudo; для ssh это сложно, когда вы вызываете его из Терминал).

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

  • Как я могу удалить Kerberos для passwd?
  • команда для получения имени пользователя через id
  • Ошибка при использовании команды passwd - Синтаксическая ошибка
  • Будет ли всегда пара одинаковых UID и GID?
  • usermod изменить пароль пользователя не работает
  • Что такое «Charlie &» в поле gecos на OpenBSD для root?
  • Замените оболочку пользователя mysql в файле / etc / passwd
  • Почему мне не нужно восстанавливать ключи при изменении пароля пользователя?
  • Пользователь без полномочий root не может изменять пароль Samba
  • Редактирование файлов passwd, отличных от / etc / passwd
  • / sbin / nologin и / bin / false игнорируются в / etc / passwd как пользовательская оболочка
  • Linux и Unix - лучшая ОС в мире.