Я хотел установить политику ограничения пароля, такую как minlen, maxage, minage и т. Д.
Я знаю, как сделать это в масштабе всей системы,
Можем ли мы сделать это для определенной группы пользователей. Я имею в виду, что только пользователи в группе администраторов должны компилировать эти ограничения, а другие пользователи должны компилировать эти ограничения.
Ответы:
Вы говорите, что знаете, как применять политику паролей в масштабе всей системы, но я повторю, что делать для тех, кто этого не делает. Вы можете использовать модуль PAM
pam_cracklib.so
, который проверяет, соответствует ли пароль определенным критериям, прежде чем разрешить применение пароля к учетной записи. В Ubuntu пакетlibpam-cracklib
устанавливает этот модуль и применяет следующую строку в верхней части/etc/pam.d/common-password
файла, который касается изменения пароля пользователя:Различные опции могут быть переданы
pam_cracklib.so
, и в этом случае указывается минимальная длина 8 с требованием изменения 3 символов от старого пароля. Смотрите http://linux.die.net/man/8/pam_cracklib для подробного списка всех доступных опций.Чтобы ограничить одну политику для определенной группы пользователей, можно использовать
pam_succeed_if.so
модуль, который успешен только в том случае, если пользователь соответствует различным критериям. Например, чтобы применить политику паролей, подобную приведенной выше, но оставить пользователей в группе «sudo» освобожденными, используйте:Это говорит PAM проверить, соответствует ли пользователь группе «sudo», а затем пропустить следующий модуль, если это удастся. В противном случае перейдите к следующему модулю, который применяет политику паролей.
Однако, если использовать модуль PAM с опцией,
use_authtok
подобнойpam_unix.so
конфигурации Ubuntu по умолчанию, с установленным pam_cracklib.so, это не будет работать правильно. Посколькуpam_unix.so
от модуля ранее требовалось установить текущий пароль пользователя и желаемый пароль, в случаеpam_succeed_if.so
успеха модуляpasswd
произойдет ошибкаpasswd: Authentication token manipulation error
. То, как я обошел это, было использовать вторуюpam_unix.so
строку:В этом примере, если пользователь находится в группе «sudo», управление пропускает 2 модуля до последней
pam_unix.so
строки, которая не включаетuse_authtok
. Однако в случае неудачи контроль переходит кpam_cracklib.so
зависимомуpam_unix.so
источник
pam_echo.so
модуль, который просто выводит сообщение. Например, чтобы отобразить содержимое файла, в котором подробно описывается, что такое хороший пароль, используйтеpassword optional pam_echo.so file=/usr/share/doc/good-password.txt
, поместив эту строку перед любыми другими в общем пароле.