키보드 입력 대신 스크립트 기능 사용

키보드 입력 대신 스크립트 기능 사용

사용자 비밀번호를 변경하는 쉘 스크립트를 작성 중입니다. 명령 을 사용해 보았지만 passwd명령은 항상 이전 암호와 새 암호를 묻습니다. 내 스크립트에서는 해당 암호를 허용하지 않습니다.

이전 비밀번호와 새 비밀번호가 변수 등에서 나오는 쉘 스크립트에서 사용자 비밀번호를 변경하는 방법이 있습니까?

답변1

#!/usr/bin/expect -f
spawn passwd username
expect "New password:"
send -- "user-password\r"
expect "Retype new password:"
send -- "user-password\r"
expect eof

시험

나는 그것을 다른 이름으로 저장했고 script.exp스크립트를 실행할 때 이것이 내 컴퓨터에 나타나는 출력입니다.

expect script.exp
spawn passwd ramesh
Changing password for user ramesh.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

비밀번호를 입력하기 위해 키보드를 사용할 필요가 없습니다. 물론 이 기능을 요구 사항에 맞게 수정하고 원하는 방식으로 사용할 수 있습니다.

관련 정보