Pergunta

Preciso sincronizar uma conta de usuário e senha com uma fonte externa em um sistema com Busybox e OpenSSL instalado. Quando a fonte externa diz ao meu sistema para atualizar as credenciais, como altero a senha do usuário em um script? Terei a senha em texto simples.

Isso deve ser automatizado e, pelo que posso dizer, o BusyBox Passwd é interativo e não quero escrever um script de expectativa para o passagem, se isso for possível. Parece que o OpenSSL pode gerar hashes de senha (OpenSSL Passwd -1 -Salt "abcdefgh" {senha}), mas terei que modificar /etc /sombra diretamente?

Busybox tem esses comandos disponíveis.

Foi útil?

Solução

Você pode escrever um pequeno script como este para atualizar a senha. Coloque o seguinte texto em um arquivo e execute -o. Isso mudará sua senha.

#!/bin/sh
passwd << eof
u003Cold password>
u003Cnew password>
u003Cnew password>
Eof

Outras dicas

Acontece que as versões atuais do BusyBox têm Chpasswd (Código fonte). Chpasswd pega um nome de usuário do par de cólon: senha no stdin. Não sei se posso atualizar o BusyBox no meu sistema, mas deixarei essa resposta caso alguém venha procurar.

Da documentação do BusyBox:

chpasswd
chpasswd [--md5|--encrypted]

Read user:password from stdin and update /etc/passwd

Options:

        -e,--encrypted  Supplied passwords are in encrypted form
        -m,--md5        Use MD5 encryption instead of DES
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top