(AIX)의 루트 비밀번호가 정규화된 일반 텍스트 비밀번호와 일치하는지 확인하기 위해 쉘 스크립트에서 방법을 찾고 있습니다. 이 쿼리는 이 사이트의 다른 쿼리와 유사합니다. 나는 루트 액세스 권한을 갖고 있으며 필요에 따라 AC 프로그램을 컴파일할 수 있습니다. 나는 HP-UX와 Linux를 위한 표준 라이브러리를 찾고 있었습니다. 이제 저는 AIX에서 작업하고 있는데 제가 직면한 것은 몇 가지 장애물뿐입니다. 솔트와 해시를 추출할 수 있었고 일반 텍스트 비밀번호를 알고 있습니다. 소금과 비밀번호를 입력하고 비밀번호 해시를 가져와서 서버에 저장된 것과 비교할 수 있도록 하고 싶습니다.
답변1
저는 AIX에 익숙하지 않습니다. 전문적인 도구가 있을 수 있습니다. 그러나 도구를 루트로 실행해야 할 수도 있습니다.
직접 코딩하는 것보다 기존 도구를 사용하는 것이 좋습니다. 비밀번호를 전달 su
하고 su
성공하는지 테스트합니다. 루트로 실행 해야 합니다 su
. su
비밀번호는 단말기에서 읽어오기 때문에 ,예상되는그것을 통과하십시오.
영감을 받아 만든 스크립트입니다.CluelessCoder가 Stack Overflow에서 비슷한 질문을 했습니다.. 이 스크립트는 루트가 아닌 사용자로 실행해야 합니다. 그렇지 않으면 su
비밀번호를 묻는 메시지가 표시되지 않습니다.
#!/bin/sh
PASSWORD=swordfish
expect << EOF
spawn su -c exit
expect "Password:"
send "$PASSWORD\r"
set wait_result [wait]
# check if it is an OS error or a return code from our command
# index 2 should be -1 for OS erro, 0 for command return code
if {[lindex \$wait_result 2] == 0} {
exit [lindex \$wait_result 3]
}
else {
exit 1
}
EOF
if [ $? -eq 0 ]; then
echo "The password is correct"
else
echo "The password is wrong"
fi
Perl이 있거나 C 프로그램을 사용하려면 다음을 참조하세요.이 비슷한 질문에 대한 대답Linux에서 비밀번호 해시를 추출하고 동일한 솔트를 사용하여 제공된 비밀번호의 해시를 계산하는 방법을 보여줍니다. 시스템이 기존 DES 체계를 사용하는 경우 해시 추출을 조정해야 할 수도 있습니다.