Управление паролями и пользователями с помощью 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'],
}