우리는 우리 환경에서 비밀번호 노화를 구현해야 합니다. 나는 chage와 Shadow 파일을 사용하는 것이 매우 가능하다는 것을 알고 있습니다. 그러나 비밀번호는 NIS에 의해 처리되므로 비밀번호 만료를 달성하기 위해 chage 메소드를 사용할 수 없습니다. 나는 정기적으로(매일) passwd 파일을 확인하여 메일 알림을 받은 180일 이후 어떤 사용자도 비밀번호를 변경하지 않았는지 확인하는 스크립트를 작성할 수 있는지 궁금했습니다. 이렇게 하면 사용자에게 알리고 비밀번호를 변경하도록 요청할 수 있습니다. 일종의 비밀번호 노화. 이것이 완벽한 사례는 아닐 것이라는 점을 알고 있지만 이 해결 방법을 채택해야 합니다. 지금까지 UNIX 사용자는 55명에 불과합니다. 저는 프로그래밍을 좋아하지 않기 때문에 이를 수행하는 방법에 대한 몇 가지 팁을 여러분 모두에게 요청하고 있습니다. 시도해 보았지만 그럴 가치가 없습니다.
###Here the script will change the difference in two password files passwd.2 and passwd.11 and if there are differences then record them(only Usernames) in the file Table
#!/bin/bash
#set -x
if [[ "$(diff passwd.2 passwd.11 )" != "" ]]; then
( date ; echo FileChanged ) >> Status2
( diff passwd.2 passwd.11 ) >> Status2
diff --unchanged-line-format="" --old-line-format="" --new-line-format=":%dn: %L" passwd.2 passwd.11 |awk -F: '{print $3}' >> Table
tail -15 Status2
tail -15 Table
else
( date ; echo NOFileChanged ) >> Status2
fi
샘플 비밀번호 파일은 다음과 같습니다. 비밀번호:
t1:$2y$05$lFZBPdAihnWxJPwfHeoI8WBdhzZGtcVJXXXXXXXXXXXXXXXXX:10954:20000:Test User temporary:/home/t1:/bin/bash
fdl:Nologin*:499:20190:fdl,Application User:/home/fdl:/bin/csh
v1:$2y$05$lPdAihnWXXXXXXXXXXXXXXXXXcPwfHeoI8WBdhzZGtcVJXXXXXXXXXXXXXXXXX:10955:20000:Test User temporary:/home/v1:/bin/bash
v2:$2y$05BPdAihnWxJeXXXXXXXXXXXXXXXXXoI8WBdhzZGXXXXXXXXXXXXXXXXX:10956:20000:Test User temporary:/home/v2:/bin/bash
v3:$2y$05$lFZBPdAiXXXXXXXXXXXXXXXXXoI8WBdhzZGXXXXXXXXXXXXXXXXX:10957:20000:Test User temporary:/home/v3:/bin/bash
v4:$2y$05$lFZBPdAXXXXXXXXXXXXXXXXXfHeoI8WBdhzXXXXXXXXXXXXXXXXX:10958:20000:Test User temporary:/home/v4:/bin/bash