Как я могу дать пользователю один пароль для обычного использования при входе в систему и еще один пароль для системного администрирования и доступа sudo? Я хочу, чтобы у одного пользователя было два пароля.
Есть способ сделать это, переопределив параметры 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. Чтобы обновить файл, снова используйте полезный инструмент.
Есть способ сделать это, переопределив параметры 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. Чтобы обновить файл, снова используйте полезный инструмент.