LINUX 에서 시스템 사용자 이름과 비밀번호 가 정확 한 지 검증 하 는 방법 입 니 다.

4699 단어
원본:http://blog.chinaunix.net/u/14673/showart_289691.html
LINUX 에서 시스템 사용자 이름과 비밀번호 가 정확 한 지 검증 하 는 방법 입 니 다.
 
 
이 문 제 는 오랫동안 생각 했다.셸 아래 에 직접 호출 된 것 이 없 는 것 같 습 니 다. 사용자 이름과 비밀 번 호 를 확인 하 라 고 합 니 다.그래서 자신 이 쓰 는 것 을 생각 했다.
 
원리: ssh 로 로 컬 을 연결 한 후 사용자 이름 비밀번호 가 정확 한 지 판단 합 니 다.
코드: (expect 지원 이 필요 합 니 다. 다른: expect 는 tcl 지원 이 필요 합 니 다)
 
  #!/root/download/expect-5.30/expect -f
#usage:shell_test name password

if {$argc!=2}/
{
        send_user "Usage:shell_test name password"
        exit 1
}
set name [lindex $argv 0]
set password [lindex $argv 1]
set isSend 0
spawn ssh -t "${name}@localhost"
expect /
{
        "* (yes/no)*" {send "yes/r"} /
        "* password:*" /
        {
                send "${password}/r"
                set isSend 1
        } /
        default {send_user "error"}
}
if {$isSend==0}/
{
        expect "* password:*" {send "${password}/r"} /
        default {send_user "error"}
}
expect /
{
        "Permission denied" {send_user "Not allowed"} /
        "*~]" /
        {
                send_user "OK"
                send "exit/r"
        } /
        default /
        {
                send_user "error"
                exit 1
        }
}
exit 0

 
높 은 분 이 조언 을 해 주 셨 는 지 어떻게 인증 해 야 하나 요?
 
 TAG linux expect authentication
에 발표: 2007 - 04 - 30, 수정: 2007 - 04 - 30 14: 05, 241 회 조회, 댓 글 0 개 추천 신고

좋은 웹페이지 즐겨찾기