Ich habe an einigen Sicherheitsmaßnahmen für eine RedHat-Box gearbeitet und wollte wissen, ob es möglich ist, zu verhindern, dass ein Benutzer sein Kennwort ändert, wenn es abgelaufen ist.
Für einen unserer Kunden ist es erforderlich, dass er nur über temporäre Konten auf den Server zugreifen kann. Das bedeutet, dass das Kennwort nach dem Erstellen der Benutzeranmeldeinformationen innerhalb von 4 Stunden abläuft und dass es nach Ablauf des Kennworts nur von root geändert werden kann .
Für die erste Anforderung (Kennwörter, deren Gültigkeit nach 4 Stunden abläuft) könnte dies durch Festlegen von passwordMaxAge = 144000 erreicht werden . Aber ich konnte immer noch keine Möglichkeit finden, die Benutzer daran zu hindern, abgelaufene Kennwörter zu ändern, ohne den Kennwortablauf zu deaktivieren.
Kann jemand helfen?
Antworten:
Im Allgemeinen wird der Kennwortablauf verwendet, um Benutzer zum Ändern ihrer Kennwörter zu zwingen . Es hört sich so an, als ob Sie das Konto sperren möchten , wodurch jede Anmeldung verhindert wird.
Ich würde stattdessen vorschlagen, dass Sie beim Erstellen des Kontos auch einen at-Job einrichten, der das Konto nach vier Stunden sperrt.
Beispielsweise:
(Es wird
chage -E
erwartet, dass die Ablaufdaten in Tagen angegeben werden. Daher arbeiten wir mit einem at job daran.)quelle
at
Test machenuserdel
, der den Vorteil hätte, all diese temporären Accounts aufzuräumen , damit sie nicht für immer herumhängen .passwd -l temp813
wird das Gleiche erreichen wiechage -E 0 temp8143
.passwd -l
Dies verhindert beispielsweise nicht das Anmelden bei SSH-Schlüsseln oder Fingerabdrücken, während dies der Fall istchage -E 0
.Wenn Sie das setuid-Bit aus dem passwd-Befehl entfernen, kann es nur root verwenden. Dadurch wird auch verhindert, dass Benutzer das Kennwort ändern, bevor es abläuft. Anderenfalls können die Benutzer das Konto um weitere vier Stunden verlängern.
Root kann weiterhin jedes Passwort ändern:
quelle
passwd
es jemals vom System aktualisiert wird.