1

Я хотел установить политику ограничения пароля, такую как minlen, maxage, minage и т.д.

Я знаю, как сделать это в масштабе всей системы,

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

1 ответ1

0

Вы говорите, что знаете, как применять политику паролей в масштабе всей системы, но я повторю, что делать для тех, кто этого не делает. Вы можете использовать модуль PAM, pam_cracklib.so , который проверяет, чтобы убедиться, что пароль соответствует определенным критериям, прежде чем разрешить применять пароль к учетной записи. В Ubuntu пакет libpam-cracklib устанавливает этот модуль и применяет следующую строку в верхней части /etc/pam.d/common-password , файла, который имеет дело с изменением пароля пользователя:

password    requisite           pam_cracklib.so retry=3 minlen=8 difok=3

Различные параметры могут быть переданы в pam_cracklib.so , и в этом случае указывается минимальная длина 8 с требованием 3-х символьных изменений старого пароля. Смотрите http://linux.die.net/man/8/pam_cracklib для подробного списка всех доступных опций.

Чтобы ограничить одну политику для определенной группы пользователей, можно использовать модуль pam_succeed_if.so , который успешно выполняется только в том случае, если пользователь соответствует различным критериям. Например, чтобы применить политику паролей, подобную приведенной выше, но оставить пользователей в группе «sudo» освобожденными, используйте:

password    [success=1 default=ignore]  pam_succeed_if.so user ingroup sudo
password    requisite           pam_cracklib.so retry=3 minlen=8 difok=3

Это говорит PAM проверить, соответствует ли пользователь группе 'sudo', а затем пропустить следующий модуль, если это удастся. В противном случае перейдите к следующему модулю, который применяет политику паролей.

Однако, если использовать модуль PAM с опцией use_authtok такой как конфигурация Ubuntu pam_unix.so по умолчанию с установленным pam_cracklib.so, это не будет работать правильно. Так как pam_unix.so зависит от модуля, ранее установившего текущий пароль пользователя и желаемый пароль, в случае успеха модуля pam_succeed_if.so passwd выдаст ошибку passwd: Authentication token manipulation error . Я нашел способ использовать вторую строку pam_unix.so :

password    [success=2 default=ignore]  pam_succeed_if.so user ingroup sudo
password    requisite           pam_cracklib.so retry=3 minlen=8 difok=3
password    [success=2 default=ignore]  pam_unix.so obscure use_authtok try_first_pass sha512
password    [success=1 default=ignore]  pam_unix.so obscure sha512

В этом примере, если пользователь находится в группе 'sudo', элемент управления пропускает 2 модуля до последней строки pam_unix.so которая не включает use_authtok . Однако в случае сбоя управление переходит к pam_cracklib.so , а затем к зависимому pam_unix.so

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .