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