Shell-Skript zum Beheben des Mindestkennwortalters funktioniert nicht, aber es treten keine Fehler auf

Shell-Skript zum Beheben des Mindestkennwortalters funktioniert nicht, aber es treten keine Fehler auf

Das Ziel dieses Skripts besteht darin, das Mindestalter für Passwörter in der Datei /etc/login.defs zu ändern.

Mein Problem ist, dass dieses Skript ausgeführt wird. Ich erhalte keine Fehler, aber wenn ich die Datei vi aufrufe, hat sich nichts geändert. Ich bin nicht so gut mit sed, also gehe ich davon aus, dass da etwas nicht stimmt. Ich brauche Hilfe, um herauszufinden, was daran falsch ist.

min_pass_age=7

sed -i "s/^PASS_MIN_DAYS.*/PASS_MIN_DAYS ${min_pass_age}/" /etc/login.defs

Antwort1

Einige Dinge behoben. Das /g muss am Ende stehen, da es die am Zeilenanfang übernehmen und die kommentierten Zeilen ignorieren muss. Es dürfen keine doppelten Anführungszeichen verwendet werden, sondern nur einfache.

sed -i 's/^PASS_MAX_DAYS.*/PASS_MAX_DAYS 90/g' /etc/login.defs

sed -i 's/^PASS_MIN_DAYS.*/PASS_MIN_DAYS 7/g' /etc/login.defs

verwandte Informationen