Управление паролями и пользователями с помощью puppet

В этой записи поговорим об управлении пользователями и их паролями с помощью puppet. Однако, прежде чем говорит о , немного поговорим о .

Shadow passwords используется по умолчанию в большинстве современных дистрибутивах . При этом информация о паролях пользователей вместо /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'], }