usando a função script em vez da entrada do teclado

1

Estou escrevendo um script de shell para alterar a senha de um usuário. Eu tentei usar o comando passwd , mas esse comando sempre pede que as senhas antigas e novas sejam digitadas; não vai aceitá-los do meu roteiro.

Existe uma maneira de alterar a senha do usuário em um shell script, com a senha antiga e a nova vindo de, por exemplo, variáveis?

    
por biswa1234 15.01.2015 / 21:41

1 resposta

2

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

Teste

Eu salvei como script.exp e quando executo o script, esta é a saída que recebo na minha máquina.

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

Eu não tive que digitar a senha usando o meu teclado. Naturalmente, você pode modificar a função para melhor atender às suas necessidades e usá-la da maneira desejada.

    
por 15.01.2015 / 21:47