![최소 비밀번호 사용 기간이 작동하지 않지만 오류가 발생하지 않도록 수정하는 쉘 스크립트](https://linux55.com/image/154915/%EC%B5%9C%EC%86%8C%20%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%20%EC%82%AC%EC%9A%A9%20%EA%B8%B0%EA%B0%84%EC%9D%B4%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%A7%80%EB%A7%8C%20%EC%98%A4%EB%A5%98%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8F%84%EB%A1%9D%20%EC%88%98%EC%A0%95%ED%95%98%EB%8A%94%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8.png)
이 스크립트의 목표는 /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