Ich versuche, die Kennwortrichtlinie für Benutzer in RHEL 6.6 zu konfigurieren, und möchte, dass das System neu erstellte Benutzer auffordert, das ursprüngliche Kennwort bei der ersten Anmeldung zu ändern.
Beachten Sie, dass ich versucht habe, die EXPIRE-Variable in / etc / default / useradd auf 0 und INACTIVE auf -1 zu setzen, dies jedoch nach der Erstellung zum Ablauf eines neuen Benutzerkontos führt. Die Ausgabe des Befehls chage nach der Benutzererstellung mit diesen Variablen lautet:
# chage -l foo
Last password change : Feb 22, 2015
Password expires : May 23, 2015
Password inactive : never
Account expires : Feb 22, 2015
Minimum number of days between password change : 1
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
Wenn ich versuche, mich unter foo user anzumelden, wird die Meldung "Ihr Konto ist abgelaufen. Bitte wenden Sie sich an Ihren Systemadministrator" angezeigt.
Wenn ich jedoch das Fenster "Benutzereigenschaften" öffne, die Registerkarte "Kennwortinformationen" auswähle und "Kennwortänderung bei nächster Anmeldung erzwingen" aktiviere, entspricht das Ergebnis meinen Erwartungen. Neuer Benutzer wird aufgefordert, das Passwort zu ändern. In diesem Fall wird der Befehl chage ausgegeben:
# chage -l foo2
Last password change : password must be changed
Password expires : password must be changed
Password inactive : password must be changed
Account expires : never
Minimum number of days between password change : 1
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
Wenn ich mich unter foo2 user anmelde, fordert mich das System auf, das Passwort zu ändern.
Gibt es also eine Möglichkeit, das System so zu konfigurieren, dass Benutzerkontoparameter bei der Erstellung wie im zweiten Fall festgelegt werden?
Upd
cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=0
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
Selbst wenn ich INACTIVE kommentiere oder auf einen positiven Wert setze, ist das Konto abgelaufen, aber kein Passwort.
Außerdem habe ich PAM auf dem Computer konfiguriert.
Upd 2
Ich habe dies auf einer Maschine mit RHEL 6.2 und ohne PAM-Konfiguration überprüft. Effekt ist der gleiche.
quelle
chage -d 0 {user-name}
.EXPIRE=0
in/etc/default/useradd
sollte den Job machen. Ich habe gelesen, du hast es versucht. Können Sie die unkommentierten Zeilen von hinzufügen/etc/default/useradd
? Es ist gesperrt, auch wenn Sie nicht INACTIVE = -1, sondern einen anderen Wert angeben oder wenn Sie diese Zeile kommentieren? Können Sie angeben, ob Konten gesperrt sind, auch wenn sie über die Befehlszeile erstellt wurden? Und bitte, wenn Sie eine andere Frage haben, posten Sie sie auf einer separaten Seite, wenn sie eine andere Antwort hat.adduser
können Sie denchage
Befehl eingeben/usr/local/sbin/adduser.local
. Sie können das Altersfeld in / etc / shadow auch direkt auf 0 setzen.useradd
ist das "Low Level Utility", das in Verbindung mit anderen Befehlen verwendet werden soll.Antworten:
Da Sie nach RHEL6 fragen, habe ich mir den Quellcode für useradd angesehen (der als Teil des 'shadow'-Pakets geliefert wird). In useradd.c befindet sich eine Funktion namens new_spent, mit der ein neuer Schattenkennworteintrag eingerichtet wird. Dort wird das Problem "Abgelaufenes Passwort bei Erstellung" folgendermaßen behoben:
Soooo ... Wenn Sie eine Null setzen, wird sie zu -1.
Die Autoren des Programms haben speziell gegen das Setzen der Alterung auf 0 codiert, sodass es keine Rolle spielt, ob Sie sie im Parameter / etc / default / useradd für EXPIRE auf 0 setzen. (Wenn ich diesen Code gemacht hätte, hätte ich nachgesehen, ob der Benutzer das Passwort im Befehl festgelegt und dann das Ablaufen zugelassen hat, aber ich war es nicht ...)
Außerdem wurde oben vorgeschlagen, ein Skript in /usr/local/sbin/adduser.local zu platzieren, um einen Befehl 'chage' auszuführen. Dies war ein guter Rat für ein Debian / Ubuntu-System, bei dem useradd ein Perl-Skript ist, das diese Datei zwar ausführt, wenn es sie findet, aber auf RHEL ist der Befehl useradd eine C-Binärdatei.
Wenn ich Sie wäre und entschlossen wäre, dieses Verhalten auf dem RHEL6-Benutzeradd zu erhalten, würde ich das SRPM für das Schattenpaket erhalten, die obigen Zeilen auskommentieren und einen RPM-Build für das Paket und Rockaway durchführen. Gewinnen!
quelle
Warum nicht einem Skript hinzufügen?
Wenn Sie nur nach dem ersten Login suchen, funktioniert dies. Das
-e
Kontokennwort läuft sofort ab, sodass der Benutzer beim nächsten Anmelden gezwungen ist, sein Kennwort zu aktualisieren. (sieheman passwd
)quelle
Automatisch:
Quelle: GeekRide
Das Bearbeiten dieser Datei im Terminal war schwierig. Also habe ich die Berechtigungen der Datei auf 777 geändert, indem ich:
und bearbeitete es in grub.
(Dank Linux Command .)
In meiner Ubuntu 12.04.5 VM eingecheckt.
Handbuch:
Quelle: nixCraft
Pure Copy-Paste. Buchstäblich. ;)
Auf meiner Ubuntu 12.04.5 VM überprüft.
quelle
chmod -R 777 /
ist eine sehr dumme Sache!