이 스크립트의 목표는 /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