Erzwingen einer Passwortänderung unter OpenBSD

Erzwingen einer Passwortänderung unter OpenBSD

Unter OpenBSD 5.6 muss ich eine Reihe von Benutzerkonten mit Standardkennwörtern einrichten. Ich möchte, dass Benutzer bei ihrer ersten SSH-Anmeldung gezwungen werden, ihre Standardkennwörter zu ändern.

Unter CentOS und Debian kann ich dies mit tun chage -d 0 $username.

Aus dem Handbuch für login.conf geht hervor, dass ich unter OpenBSD dasselbe mit etwas wie dem folgenden erreichen können sollte:

  • usermod -f 1 $usernameoder
  • usermod -f "Jan 1 2015" $username

Wenn Sie es auf diese Weise einstellen, wird zwar die entsprechende Änderung in veranlasst userinfo $username, aber die Anmeldung als $username über SSH erzwingt nicht wirklich eine Kennwortänderung - die Shell wird ganz einfach geöffnet, ohne zu beachten, dass das Kennwort oben als inaktiv markiert wurde.

Einige Beiträge aus dem Jahr 2000 sprechen darüberSchreiben einer Wrapper-Login-Shellum eine Passwortänderung zu erzwingen. Angesichts der offensichtlichen Struktur in usermodund chpassscheint dies zwar integriert, aber nicht so ausführlich dokumentiert zu sein wie die Linux-Äquivalente.

Kann ein BSD-Profi Licht in die konventionelle Herangehensweise hierzu bringen?

Antwort1

Laut login.conf (5)beträgt die standardmäßige Karenzzeit für ein abgelaufenes (auch „totes“) Passwort 0. Sofern dieser Wert nicht in festgelegt ist /etc/login.conf, kann sich ein Benutzer nicht anmelden, um sein Passwort zu ändern, wenn das aktuelle Systemdatum nach dem 6. Feld der Passworteingabe des Benutzers in liegt /etc/master.passwd– siehe passwd (5).

Um das Problem zu lösen, müssen Sie ein Datum in Sekunden seit der Epoche angeben, die in die von Ihnen gewählte Nachfrist fällt, z. B. 2 Wochen, die Sie ebenfalls in konfigurieren /etc/login.conf. Um manuell einen Kennwortablaufzeitpunkt von gestern auszuwählen, können wir Folgendes verwenden:

# date -d yesterday +%s
1463597700

Und dann fügen Sie diesen Wert /etc/master.passwdmit in Feld Nr. 6 ein vipw. Die entsprechende Zeile sieht dann etwa so aus:

user:$2b$08$01234567890abcdef:1000:1000::1463597700:0:user:/home/user:/bin/ksh

Das Ausführen von usermod wie von Ihnen angegeben ( usermod -f "May 17 2016" user) bewirkt im Wesentlichen dasselbe, /etc/login.confmuss aber in beiden Fällen auch geändert werden, indem Folgendes an den default:\entsprechenden Abschnitt für Ihre Benutzerklasse angehängt wird:

    :password-dead=2w:\
    :password-warn=2w:

Die erste Zeile gewährt dem Benutzer eine Frist von zwei Wochen, um sein Passwort zu ändern; die zweite Zeile gibt eine Warnung aus, dass das Passwort eines Benutzers bald abläuft. Wenn das Passwort abgelaufen ist, wird Ihren Benutzern etwa Folgendes angezeigt:

WARNING: Your password has expired.
You must change your password now and login again!
Changing local password for user.
Old password:
New password:
Retype new password:
Connection to openbsd-server closed.

Sie können es auch so konfigurieren, :passwordtime=7776000:dass alle 90 Tage eine zusätzliche Kennwortänderung erzwungen wird. Beachten Sie, dass Sie Pakete oder ein anderes Kennwortprüfprogramm /etc/login.confinstallieren und konfigurieren sollten, wenn Sie zusätzliche Prüfungen der Kennwortkomplexität der Benutzer benötigen, z. B. das Verbot der Kennwortwiederverwendung.passwordqc

verwandte Informationen