Как сделать пароли пользователя показавшими открытым текстом в Linux?

Это кажется на создание доморощенного беспроводного моста такими работами с IPv4, и теперь Вы хотите выполнить IPv6 через него. К сожалению, Вы не можете. Если это - то, что Вы пытаетесь сделать, что необходимо сделать, настраивается надлежащий WDS. (Беспроводная Система распределения) Интернет имеет различные документы с практическими рекомендациями, объясняющие, как сделать это; вот один пример такого практического руководства.

28
20.07.2014, 12:40
4 ответа

Другие два ответа правильно сказали!- что это Плохая Идея™ . Но они также сказали вам, что это трудно , требующая изменения кучи программ.

Это неправда. Это очень просто. Вам нужно изменить только один или два конфигурационных файла. Я считаю важным обратить на это внимание, потому что вы должны знать об этом при входе в системы, которые вы не контролируете. На самом деле это не поместит простой текстовый пароль в /etc/passwd или /etc/shadow, он попадет в другой файл. Обратите внимание, что я не тестировал их, так как я бы предпочел, чтобы мой пароль не был открытым текстом.

  1. Редактируйте /etc/pam.d/общий пароль (чтобы поймать измененный пароль) или /etc/pam. d/common-auth (чтобы поймать при входе в систему) и добавить в ... pam_exec expose_authtok log=/root/passwords /bin/cat

  2. Редактируйте оба и переключитесь с pam_unix на pam_userdb с помощью crypt=none. В качестве альтернативы, вы можете поместить его только в общий пароль (оставив pam_unix), чтобы просто записывать пароли, когда они меняются.

  3. Можно убрать опцию shadow (а также любые сильные опции хэша) из pam_unix, чтобы отключить теневой файл и вернуться к традиционным криптографическим паролям. Не обычный текст, но Джон Потрошитель исправит это за вас.

Для получения более подробной информации обратитесь к Руководству системного администратора PAM .

Вы также можете отредактировать исходный код PAM или написать свой собственный модуль. Вам нужно будет скомпилировать только PAM (или ваш модуль), больше ничего.

58
27.01.2020, 19:38

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

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

Если бы это была опция в конфигурации установки, то всегда были бы глупые люди, которые включили бы ее ненадлежащим образом. И пока они все еще работают над ЭЛТ-экранами и транслируют это таким образом, чтобы их можно было легко увидеть снаружи их здания, пока они просматривают информацию.

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

Должно быть больше интересных вещей, работу которых можно будет исследовать в вашей системе.

10
27.01.2020, 19:38

Основная причина (почему это плохая идея) заключается в том, что ни один пользователь (root, admin или другой) никогда не должен иметь доступа к чужому паролю пользователя.

Просто потому, что пароль - это средство аутентификации. Если я знаю пароль другого пользователя, я знаю его учетные данные (имя пользователя + пароль), поэтому я могу войти в систему как этот пользователь , выдавая себя за него (или за нее или за нее).

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

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

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

Затем я уезжаю в длительный отпуск на Багамы ...


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

И, как прокомментировал @ Miral * , есть исключение su , которое, хотя и разрешает выдачу себя за другое лицо (и различные виды отклонений от приведенного выше аргумента), также ведет журнал своих использовать (поэтому правила меняются на «только администраторы могут выдавать себя за других, но журнал сохраняется»).

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

3
27.01.2020, 19:38

О боже, ладно, давайте начнем с самого начала...

Мы знаем, что пароли пользователей сохраняются в /etc/passwd, но в зашифрованном виде

Нет, они были сохранены в /etc/passwd, и это было довольно давно. Сегодня пароли хранятся в так называемом теневом файле, большую часть времени /etc/shadow.

но в зашифрованном виде, поэтому даже корень их не видит:

Я знаю, что иногда он используется взаимозаменяемо, но хэширование - это не шифрование . Шифрование по самому определению обратимо, то есть вы можете перевести зашифрованную вещь обратно в чистый текст. Хэширование предназначено для того, чтобы быть не обратимым никаким образом (за исключением грубой силы). Оригинальная форма хэширования в чистом тексте не должна быть восстановлена.

Пароли в теневом файле хранятся в виде хэшей.

как показано выше :x: представляет собой пароль

В данном случае x является только местом для поля наследственных паролей. x означает, что пароль может быть найден в теневом файле.

Есть ли способ (возможная конфигурация) сохранить пароль в /etc/passwd открытым текстом и таким образом, чтобы корень мог их видеть?

Да, это действительно возможно, но по некоторым причинам это не является хорошей идеей. Ответ Дерберта объясняет довольно простой способ.

Но почему это плохая идея? Ну, по простой, но очень важной причине: безопасность. Предлагаю прочитать эти вопросы:

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

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

35
27.01.2020, 19:38

Теги

Похожие вопросы