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?

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.