Скрипт Shell для исправления минимального срока действия пароля не работает, но ошибок нет

Скрипт Shell для исправления минимального срока действия пароля не работает, но ошибок нет

Целью этого скрипта является изменение минимального срока действия пароля в файле /etc/login.defs.

Моя проблема в том, что этот скрипт запускается, я не получаю никаких ошибок, но когда я vi в файл, ничего не меняется. Я не очень хорош в sed, поэтому предполагаю, что что-то не так. Нужна помощь, чтобы выяснить, что не так с этим.

min_pass_age=7

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

решение1

Исправлено несколько вещей. Нужен /g в конце, потому что он должен выбрать те, что в начале строки, и игнорировать закомментированные строки. Не нужно использовать двойные кавычки, следует использовать только одинарные.

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

Связанный контент