Как я могу установить пароль для кукол только при создании пользователя?

9

Я хочу, чтобы Puppet не управлял паролем (т. Е. Сбрасывал его при изменении), а устанавливал исходный пароль, когда Puppet создает пользователя.

Я думал делать notifyна Execресурс , который устанавливает пароль , но это срабатывает , когда какое -то свойство , которое управляет кукольный модифицируется (например, членство в группе, домашний каталог и т.д.). Я не хочу этого.

Любые идеи?

Бельмин Фернандес
источник

Ответы:

9

Сама Puppet изначально не поддерживает «устанавливать пароль при создании пользователя, но не иначе».

Одним из вариантов будет настройка внешнего источника аутентификации, такого как LDAP.

Другой бы для вас notifyк Execидее, но сделать Execнемного умнее.

exec {
  "/usr/sbin/usermod -p '${password}' ${user}":
    onlyif => "/bin/egrep -q '^${user}:[*!]' /etc/shadow",
    require => User[$user];
}

Я не проверял это, но проверяя, не был ли установлен пароль в Execресурсе, вы должны получить результат, который вы искали. Я думаю, что настроенный таким образом, notify/ refreshonlyматериал не является необходимым, но, вероятно, не повредит.

Freiheit
источник
1
Я видел, что некоторые машины используют !для установки без пароля, и в этом случае egrep -q '^${user}:[*!]:' /etc/shadowработает лучше.
leedm777
1
Для RHEL / Cent: egrep '^${username}:!!:.*:' /etc/shadow
rfelsburg
1
grep -Eq '^${user}:[*!]!?:' /etc/shadow"кажется наиболее переносимым и не сбрасывает пользователей с заблокированным паролем.
CodeGnome