사용자 비밀번호를 변경하는 쉘 스크립트를 작성 중입니다. 명령 을 사용해 보았지만 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.
비밀번호를 입력하기 위해 키보드를 사용할 필요가 없습니다. 물론 이 기능을 요구 사항에 맞게 수정하고 원하는 방식으로 사용할 수 있습니다.