このスクリプトの目的は、/etc/login.defs ファイルの最小パスワード使用期間を変更することです。
私の問題は、このスクリプトを実行してもエラーは発生しませんが、ファイルにアクセスしても何も変更されないことです。私は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