Целью этого скрипта является изменение минимального срока действия пароля в файле /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