비밀번호가 생성 된 이후로 AD에서 며칠을 가져 오는 bash 스크립트가 있습니다. 마지막 설정일 + 90 일인 만료일을 알려주기 위해 필요합니다.
#!/bin/bash
pass="$(ldapsearch -Y GSSAPI -Q -H ldap:///dc%3Dant%2Cdc%3Dwork%2Cdc%3Dcom -b DC=ant,DC=work,DC=com -s sub cn=$1 | grep -Ew 'pwdLastSet:' | awk '{print $2}')"
epoch="$(((${pass}/10000000)-11644473600))"
pwdSet="$(date -d @${epoch})"
expires="$("${pwdSet}" --date +90+days)"
echo "pwdLastSet: "$pwdSet
echo "pwdExpires: "$expires
라인; expires="$("${pwdSet}" --date +90+days)"
문제가있는 것입니까
그 선은 말이되지 않습니다. Bash에는 PowerShell의 날짜 개체와 같은 것이 없습니다. $ pwdSet은 문자열이며 실행할 명령으로 해석됩니다.
따라서 날짜와 오프셋을 가져 오는 도구를 사용해야합니다. date -d
이를 수행 할 수 있지만 날짜 형식에 따라 다릅니다.
그러나 필요한 시간 (초)을 추가하여 에포크 시간을 조정하고 최종 결과 만 날짜로 변환하는 것이 훨씬 간단합니다.
expires=$(date -d "@$((epoch + 86400*90))")
1 일은 거의 항상 86400 초입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다