thudojorge
(usa Debian)
Enviado em 13/06/2008 - 09:31h
Alo gente boa!
Tou com um probleminha, preciso de uma opcao que me possibilite atribuir uma senha a um usuario sem ter que digitar repetidamente.
O que esta acontecendo eh que eu estou escrevendo um script que recebe como parametro uma lista de usuarios por adicionar ao sistema, mas eu primeiro usei a opcao useradd -g usuario -s/bin/bash -d/home/usuario -m -p "password" usuario
e desta forma a password eh escrito no ficheiro /etc/shadow de forma nao encriptada, como consequencia o usuario nao consegue fazer login.
Entao, depois do comando useradd decidi escrever echo usuario | passwd --stdin usuario, isto seguindo uma das dicas que encontrei em pesquisa.
O mau eh que o meu comado passwd nao tem essa opcao: --stdin. E no man nao ha algo que a substitua.
Alguem tem alguma outra opcao?
O script que estou escrevendo:
#!/bin/bash
seg=$1
tipo=`file $seg 2> ERROS.txt |awk '{print $3}'`
if [ "$tipo" = "text" ];then
for nome in `cat $seg`;do
groupadd $nome 2>err_add.txt
erro=`cat err_add`
if [ "$erro" = "" ]; then
useradd -g $nome -s/bin/bash -d/home/$nome -m $nome
echo $nome | passwd --stdin $nome
echo "Adicionado: $nome">> ADICIONADOS.txt
else
while [ true ]; do
let usuario+=1
echo "usuario: $nome exite, adicionando usuario
$nome$usuario">> ALTERADOS.txt
groupadd "$nome$usuario" 2>err_add.txt
erro=`cat err_add.txt`
if [ "$erro" = "" ]; then
useradd -g "$nome$usuario" -s/bin/bash -d/home/"$nome$usuario" -m "$nome$usuario"
echo $nome |passwd --stdin $nome
echo "Adicionado: $nome$usuario">>ADICIONADOS.txt
break
fi
done
fi
done
else
echo "O uso eh: $0 e um ficheiro ascii (*.txt)"
exit
fi