最小パスワード有効期間を修正するシェル スクリプトが機能しないがエラーは発生しない

最小パスワード有効期間を修正するシェル スクリプトが機能しないがエラーは発生しない

このスクリプトの目的は、/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

関連情報