изменить логин пароль [dубликат]

Как я могу дать пользователю один пароль для обычного использования при входе в систему и еще один пароль для системного администрирования и доступа sudo? Я хочу, чтобы у одного пользователя было два пароля.

10
задан 17 April 2015 в 06:58

2 ответа

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

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

Если вы решите продолжить работу, вам нужно будет установить новый модуль PAM. pam_pwdfile использует файл типа old / style / etc / passwd для аутентификации, который отлично подходит для использования разных паролей для разных служб. Он не обеспечивает распознавания учетной записи - вы можете создавать пары имени пользователя / пароля для пользователей, которых нет в системе. Поскольку мы будем использовать его для sudo, это не имеет значения, поскольку мы просто разрешим sudo проверять учетную запись обычным способом.

sudo apt-get install libpam-pwdfile

Я также рекомендую захватить удобный файл htpasswd редактор. Benjamin Schweizer создал удобный редактор на python, который хорошо работает. Возьмите его с http://benjamin-schweizer.de/htpasswd_editor.html и установите его зависимость:

sudo apt-get install python-newt

Создайте файл формата htpasswd с помощью инструмента - sudo python htpasswd_editor sudo.passwd. Введите имя пользователя и пароль, используя то же имя пользователя, которое вы будете использовать для sudo - по одному для каждого пользователя, который будет его использовать. Скопируйте его где-нибудь в безопасное место (при тестировании этого я поместил его в /etc/sudo.passwd) и сделаю его нечитаемым для обычных пользователей: chmod 660 /etc/sudo.passwd как root.

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

Наконец, отредактируйте файл /etc/pam.d/sudo. Добавьте следующую строку над другими @include ... строками:

auth required pam_pwdfile.so pwdfile /etc/sudo.passwd

Очевидно, заменив последний аргумент на путь к вашему сгенерированному файлу htpasswd. Прочитайте следующую строку: #@include common-auth, чтобы убедиться, что она использует новый метод проверки подлинности.

** Осторожно ** - вам нужно будет отредактировать файл /etc/pam.d/sudo с корневого терминала. Не закрывайте это без тестирования! Если вы это сделаете, вы не сможете войти в систему (если вы что-то сломали), и вам придется загрузиться с диска восстановления для восстановления вашей системы. Перед тем, как выйти из системы, откройте новый терминал и попробуйте использовать sudo. Вы должны обнаружить, что он больше не будет работать с вашим обычным паролем входа, но вместо этого требует новый пароль, который вы использовали при создании файла passwd. Чтобы обновить файл, снова используйте полезный инструмент.

15
ответ дан 17 July 2018 в 18:32

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

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

Если вы решите продолжить работу, вам нужно будет установить новый модуль PAM. pam_pwdfile использует файл типа old / style / etc / passwd для аутентификации, который отлично подходит для использования разных паролей для разных служб. Он не обеспечивает распознавания учетной записи - вы можете создавать пары имени пользователя / пароля для пользователей, которых нет в системе. Поскольку мы будем использовать его для sudo, это не имеет значения, поскольку мы просто разрешим sudo проверять учетную запись обычным способом.

sudo apt-get install libpam-pwdfile

Я также рекомендую захватить удобный файл htpasswd редактор. Benjamin Schweizer создал удобный редактор на python, который хорошо работает. Возьмите его с http://benjamin-schweizer.de/htpasswd_editor.html и установите его зависимость:

sudo apt-get install python-newt

Создайте файл формата htpasswd с помощью инструмента - sudo python htpasswd_editor sudo.passwd. Введите имя пользователя и пароль, используя то же имя пользователя, которое вы будете использовать для sudo - по одному для каждого пользователя, который будет его использовать. Скопируйте его где-нибудь в безопасное место (при тестировании этого я поместил его в /etc/sudo.passwd) и сделаю его нечитаемым для обычных пользователей: chmod 660 /etc/sudo.passwd как root.

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

Наконец, отредактируйте файл /etc/pam.d/sudo. Добавьте следующую строку над другими @include ... строками:

auth required pam_pwdfile.so pwdfile /etc/sudo.passwd

Очевидно, заменив последний аргумент на путь к вашему сгенерированному файлу htpasswd. Прочитайте следующую строку: #@include common-auth, чтобы убедиться, что она использует новый метод проверки подлинности.

** Осторожно ** - вам нужно будет отредактировать файл /etc/pam.d/sudo с корневого терминала. Не закрывайте это без тестирования! Если вы это сделаете, вы не сможете войти в систему (если вы что-то сломали), и вам придется загрузиться с диска восстановления для восстановления вашей системы. Перед тем, как выйти из системы, откройте новый терминал и попробуйте использовать sudo. Вы должны обнаружить, что он больше не будет работать с вашим обычным паролем входа, но вместо этого требует новый пароль, который вы использовали при создании файла passwd. Чтобы обновить файл, снова используйте полезный инструмент.

15
ответ дан 23 July 2018 в 19:20

Другие вопросы по тегам:

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