¿Cómo puedo hacer que Puppet solo establezca una contraseña al crear un usuario?

9

Quiero que Puppet no administre una contraseña (es decir, la restablezca cuando se cambie) sino que establezca la contraseña inicial cuando Puppet cree al usuario.

Estaba pensando en hacer notifyun Execrecurso a un recurso que establece la contraseña, pero esto se activa cuando se modifica cualquier propiedad que administra Puppet (por ejemplo, membresía de grupo, directorio de inicio, etc.). No quiero eso.

¿Algunas ideas?

Belmin Fernandez
fuente

Respuestas:

9

Puppet en sí no admite de forma nativa "establecer contraseña en la creación del usuario, pero no de otra manera".

Una opción sería configurar una fuente de autenticación externa, como LDAP.

Otro sería el notifyde una Execidea, pero el hacer el Execun poco más inteligente.

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

No lo he probado, pero al verificar si la contraseña no se ha establecido en el Execrecurso, debería obtener el resultado que estaba buscando. Creo que configurado de esa manera, el notify/ refreshonlycosas no es necesario, pero probablemente no estaría de más.

freiheit
fuente
1
He visto algunas máquinas usar !sin contraseña, en cuyo caso egrep -q '^${user}:[*!]:' /etc/shadowfunciona mejor.
leedm777
1
Para RHEL / Cent: egrep '^${username}:!!:.*:' /etc/shadow
rfelsburg
1
grep -Eq '^${user}:[*!]!?:' /etc/shadow"parece ser el más portátil y no restablecerá a los usuarios con una contraseña bloqueada.
CodeGnome