Puppet-Benutzermodul aktualisiert /etc/shadow nicht mit Hash-Passwort

Puppet-Benutzermodul aktualisiert /etc/shadow nicht mit Hash-Passwort

Ich verwalte meine ec2-Anwendungsinstanzen mit Puppet und dazu gehört auch die Benutzerverwaltung. Aber vor kurzem ist mir ein Fehler aufgefallen, bei dem ich mich mit keinem der Benutzernamen anmelden kann, die ich über Puppet hinzugefügt habe. Nachdem ich eine der beschädigten Instanzen überprüft hatte (in diesem Fall habe ich Schlüssel verwendet), stellte ich fest, dass das Kennwortfeld /etc/shadow (2. Spalte) leer ist, d. h. kein gehashtes Kennwort darin. Ich konnte nicht herausfinden, warum gehashte Kennwörter bei der Benutzererstellung nicht aktualisiert werden, weil ich im Benutzermodul ein gehashtes Kennwort bereitgestellt habe. Glauben Sie mir, ich verwende ein sehr einfaches Puppet-Benutzermodul, aber aus irgendeinem Grund aktualisiert es die Kennwörter für die Benutzer nicht.

Hinweis: Das Modul funktioniert auf meinem lokalen Rechner (Centos 6.3) einwandfrei.

Hier ist mein „user.pp“-Modul und die Protokolle:

1)Benutzer.pp anhängen.

2)Puppet-Laufprotokolle:

mnotice: /Usertgrochowicz/ensure: created
mnotice: /Userjpollard/ensure: created
mnotice: /Userbottle/ensure: created
mnotice: /Userjburgar/ensure: created
mnotice: /Userrahul/ensure: created
mnotice: /Userjfenocchi/ensure: created
mnotice: /Userdwhite/ensure: created
mnotice: /Userbporter/ensure: created
mnotice: /Userasavarin/ensure: created
mnotice: /Userehalfin/ensure: created
mnotice: Finished catalog run in 1.69 seconds
mnotice: Finished catalog run in 0.21 seconds

3) Einträge in der Datei /etc/shadow erstellt:

tgrochowicz:!!:15956:0:99999:7:::
jpollard:!!:15956:0:99999:7:::
bottle:!!:15956:0:99999:7:::
jburgar:!!:15956:0:99999:7:::
rahul:!!:15956:0:99999:7:::
jfenocchi:!!:15956:0:99999:7:::
dwhite:!!:15956:0:99999:7:::
bporter:!!:15956:0:99999:7:::
asavarin:!!:15956:0:99999:7:::
ehalfin:!!:15956:0:99999:7:::

4) Betriebssystemversion und Architektur:

ec2-user@ip-10-100-38-78 ~$ uname -r
3.4.43-43.43.amzn1.x86_64
ec2-user@ip-10-100-38-78 ~$ uname -a
Linux ip-10-100-38-78 3.4.43-43.43.amzn1.x86_64 #1 SMP Mon May 6 18:04:41 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Irgendeine Idee, warum dieses Modul das Passwort von meinem Modul auf der EC2-Instanz nicht aktualisieren kann?


Ich entschuldige mich, mir war nicht bewusst, dass dies kein Forum ist. Hier ist das Update zu meiner Frage:

Ich stimme zu … und ich habe vergessen zu sagen, dass Ruby-Shadow bereits als Voraussetzung für das Modul „Benutzer“ installiert ist. Die Kennwortfelder in /etc/shadow sind immer noch leer. Ich habe keine Ahnung, was Puppet blockiert … irgendeine Idee?

Hier sind die Befehlsprotokolle, die besagen, dass Ruby-Shadow installiert und initiiert ist:

[root@ip-10-100-39-44 ~]# ruby -e "require 'puppet' ; puts Puppet.features.libshadow?"
true
[root@ip-10-100-39-44 ~]# rpm -qa | grep ruby-shadow
ruby-shadow-1.4.1-15.2.amzn1.x86_64

Und hier sind die Puppet-Protokolle, die zeigen, dass das Paket „ruby-shadow“ vor dem „User“-Modul installiert wurde:

[root@ip-10-100-39-44 ~]# less /var/log/messages 
*(/Stage[main]/Packages/Yumrepo[epel]/enabled) enabled changed '0' to '1'
Sep 20 03:08:50 ip-10-100-39-44 yum[2631]: Installed: ruby-shadow-1.4.1-15.2.amzn1.x86_64
Sep 20 03:08:51 ip-10-100-39-44 puppet-apply[2471]: (/Stage[main]/Packages/Package[ruby-shadow]/ensure) created*

*(/Stage[main]/Env::Sshd/Augeas[PasswordAuthentication]/returns) executed successfully
Sep 20 03:10:32 ip-10-100-39-44 puppet-apply[2471]: (/Stage[main]/Env::Sshd/Service[sshd]) Triggered 'refresh' from 1 events
Sep 20 03:10:38 ip-10-100-39-44 puppet-apply[2471]: (/Stage[main]//Exec[wait_for_5_sec]/returns) executed successfully
Sep 20 03:10:38 ip-10-100-39-44 puppet-apply[2471]: (/User[bporter]/ensure) created
Sep 20 03:10:38 ip-10-100-39-44 puppet-apply[2471]: (/User[asavarin]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[ehalfin]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[jpollard]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[bottle]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[jburgar]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[rahul]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[tgrochowicz]/ensure) created
Sep 20 03:10:40 ip-10-100-39-44 puppet-apply[2471]: (/User[jfenocchi]/ensure) created
Sep 20 03:10:40 ip-10-100-39-44 puppet-apply[2471]: (/User[dwhite]/ensure) created*

Danke

Antwort1

Für Ruby (und damit auch für Puppet) muss eine Bibliothek namens „ruby-shadow“ installiert sein, damit Ruby die Shadow-Passwortdatei ändern kann.

Unter RHEL/CentOS ist dies das Ruby-Shadow-RPM. Auf anderen Plattformen kann es Ruby-Shadowlib heißen.

Die Puppet-Dokumente verweisen darauf in derBenutzertypunter dem Abschnitt Provider->Useradd.

Sie sollten überprüfen können, ob Sie das Richtige laden, indem Sie beispielsweise Folgendes tun:

ruby -e "require 'puppet' ; puts PUppet.features.libshadow?"

Bei ordnungsgemäßem Laden sollte „true“ zurückgeben.

verwandte Informationen