mudança de senha

3

Eu quero escrever um script bash que, quando executado, irá alterar todas as senhas de usuário para uma determinada senha especificada no script. Alguém tem alguma idéia de como conseguir isso? Obrigado!

    
por wimpycoder 17.07.2016 / 18:33

1 resposta

3

Você pode usar chpasswd , que lê uma lista de combinações de nome de usuário / senha de STDIN e as aplica.

Para gerar a entrada, podemos fazer uma lista de todas as contas de usuário habilitadas que tenham uma senha definida usando passwd -Sa | grep -Po "^\S+(?= P)" . Em seguida, acrescentamos dois pontos ":" e a nova senha após cada nome de usuário com a ajuda de sed .

Essa construção seria assim:

passwd -Sa | grep -Po "^\S+(?= P)" | sed "s/$/:NEWPASSWORD/" | chpasswd

Ele deve ser executado como root, então devemos colocá-lo em um script e executá-lo como root (com sudo ), ou devemos executá-lo em um shell raiz Bash colocando-o dentro de sudo bash -c 'COMMAND' .

Aqui está o comando completo que você pode executar, substituindo NEWPASSWORD pelo que você deseja.

sudo bash -c 'passwd -Sa | grep -Po "^\S+(?= P)" | sed "s/$/:NEWPASSWORD/" | chpasswd'
    
por Byte Commander 17.07.2016 / 19:10