В этой записи поговорим об управлении пользователями и их паролями с помощью puppet. Однако, прежде чем говорит о puppet, немного поговорим о shadow passwords.
Shadow passwords используется по умолчанию в большинстве современных дистрибутивах Linux. При этом информация о паролях пользователей вместо /etc/passwd хранится в
/etc/shadow в формате:
[username]:[password]:[lastpasswdchanged]:[minimum days]:[maximum days]:[warn]:[inactive]:[expire]
Пароль в срою очередь тоже является составным полем:
$[encryption algorithm]$[salt value]$[strong encrypted password]
В деле безопасной принудительной смены паролей пользователей нам поможет утилита mkpasswd:
mkpasswd -m sha-512 -S Np1jEa3F Qwerty $6$Np1jEa3F$dNUm9FqKIYVEp3HQ8c3dLYVbe1JWZG2DS2mebi5TNxs5pcbfNS4TS.SqqO/pAvdhNOGy3HYVLa2CJJqisGcpB0
А теперь вернемся к puppet. Пример манифеста выглядит следующим образом:
user { 'rascal': ensure => 'present', comment => "User", home => "/home/rascal", shell => "/bin/bash", uid => 512, gid => 100, managehome => 'true', password => "$6$Np1jEa3F$dNUm9FqKIYVEp3HQ8c3dLYVbe1JWZG2DS2mebi5TNxs5pcbfNS4TS.SqqO/pAvdhNOGy3HYVLa2CJJqisGcpB0", groups => ['sudo', 'audio'], }