Jak mogę ustawić kukiełkę tylko przy ustawianiu hasła podczas tworzenia użytkownika?

9

Chcę, aby Puppet nie zarządzał hasłem (tj. Resetował je po zmianie), ale ustawił hasło początkowe, gdy Puppet tworzy użytkownika.

Myślałam o robi notifysię do Execzasobu, który ustawia hasło, ale jest to uruchamia każda właściwość, która zarządza Lalek jest modyfikowany (np członków grupy, katalog domowy, itd.). Nie chcę tego.

Jakieś pomysły?

Belmin Fernandez
źródło

Odpowiedzi:

9

Sam Puppet natywnie nie obsługuje „ustaw hasła przy tworzeniu użytkownika, ale nie inaczej”.

Jedną z opcji byłoby skonfigurowanie zewnętrznego źródła uwierzytelniania, takiego jak LDAP.

Innym byłby to notifydo Execpomysłu, ale sprawiają, że Exectrochę mądrzejszy.

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

Nie testowałem tego, ale sprawdzając, czy hasło nie zostało ustawione w Execzasobie, powinieneś uzyskać wynik, którego szukałeś. Myślę skonfigurować ten sposób, notify/ refreshonlyrzeczy nie jest konieczne, ale prawdopodobnie nie zaszkodzi.

freiheit
źródło
1
Widziałem, że niektóre maszyny używają !trybu bez hasła, w którym to przypadku egrep -q '^${user}:[*!]:' /etc/shadowdziała lepiej.
leedm777
1
Dla RHEL / Cent: egrep '^${username}:!!:.*:' /etc/shadow
rfelsburg
1
grep -Eq '^${user}:[*!]!?:' /etc/shadow"wydaje się być najbardziej przenośny i nie resetuje użytkowników z zablokowanym hasłem.
CodeGnome