Atribua uma senha aleatória a todos os usuários existentes

0

Eu quero chamar os usuários (primeira coluna) do arquivo / etc / passwd e atribuir-lhes uma senha. Eu só quero fazer isso para contas de usuário e não contas do sistema padrão. Até agora eu tenho um script bash simples

#!/bin/bash
touch /usertempfile
grep "/home" /etc/passwd |grep -v "/bin/false"|grep -v "/sbin/nologin"|grep -v $USER |awk -F":" '{print $1}' >> /userstempfile
for i in $(cat /usertempfile); do
    echo -e "password/npassword" |passwd $i
done
rm -rf /usertempfile

O script pode extrair os usuários do arquivo / etc / passwd que não são uma conta do sistema padrão, mas não podem alterar as senhas dos usuários que estão nesse arquivo. O que estou fazendo incorretamente?

    
por Manseej Khatri 24.12.2016 / 07:53

1 resposta

2

Estou usando chpasswd no meu script e está funcionando bem para mim:

echo "$USERNAME:$NEWPASSWORD" | chpasswd

PS: para não usar usuário root sudo antes de chpasswd

echo "$USERNAME:$NEWPASSWORD" | sudo chpasswd
    
por 24.12.2016 / 08:11