Enviado em 27/02/2008 - 11:07h
Olá pessoal,
Tenho uma lista de aproximadamente 350 usuários para os quais devo criar usuários do sistema e usuários SAMBA em um servidor. Queria o seguinte script:
NOMES=(`cut -f1 -d ";" $1`)
USUARIOS=(`cut -f2 -d ";" $1`)
i=0
for NOME in ${NOMES[*]}
do
# Gera senha
SENHA=`dd if=/dev/urandom bs=1 count=6 | openssl base64`
useradd -d /home/alunos/$2/$3/${USUARIOS[$i]} -G alunos,users -m ${USUARIOS[$i]}
(echo $SENHA; echo $SENHA;) | passwd ${USUARIOS[$i]}
(echo $SENHA; echo $SENHA) | smbpasswd -s -a ${USUARIOS[$i]}
echo "$NOME ; ${USUARIOS[i]} ; $SENHA" >> log
((i++))
done
Em meu sistema Gentoo (e em um antigo servidor Debian), ele funciona perfeitamente, enquanto no Slackware 12, isso não é verdade.
Acontece que, na linha "(echo $SENHA; echo $SENHA;) | passwd ${USUARIOS[$i]}" o danado continua pedindo para que as senhas. Notem que não quero digitar as senhas, pois são 350 usuários.
Tente usar "useradd -p $SENHA" mas também não funciona. Neste caso, ele coloca o conteúdo de SENHA literalmente no /etc/shadow. Em verdade, a documentação (man) diz que é isso mesmo, eu teria que criptografar antes usando um tal de crypt que não é um comando e sim uma função do sistema. Poderia até fazer um programinha em C p/ isso, mas queria outra solução mais bonita.
Alguém tem alguma idéia ou sugestão de como automatizar este processo?!?!
Obrigado,
Carlos
Tenho uma lista de aproximadamente 350 usuários para os quais devo criar usuários do sistema e usuários SAMBA em um servidor. Queria o seguinte script:
NOMES=(`cut -f1 -d ";" $1`)
USUARIOS=(`cut -f2 -d ";" $1`)
i=0
for NOME in ${NOMES[*]}
do
# Gera senha
SENHA=`dd if=/dev/urandom bs=1 count=6 | openssl base64`
useradd -d /home/alunos/$2/$3/${USUARIOS[$i]} -G alunos,users -m ${USUARIOS[$i]}
(echo $SENHA; echo $SENHA;) | passwd ${USUARIOS[$i]}
(echo $SENHA; echo $SENHA) | smbpasswd -s -a ${USUARIOS[$i]}
echo "$NOME ; ${USUARIOS[i]} ; $SENHA" >> log
((i++))
done
Em meu sistema Gentoo (e em um antigo servidor Debian), ele funciona perfeitamente, enquanto no Slackware 12, isso não é verdade.
Acontece que, na linha "(echo $SENHA; echo $SENHA;) | passwd ${USUARIOS[$i]}" o danado continua pedindo para que as senhas. Notem que não quero digitar as senhas, pois são 350 usuários.
Tente usar "useradd -p $SENHA" mas também não funciona. Neste caso, ele coloca o conteúdo de SENHA literalmente no /etc/shadow. Em verdade, a documentação (man) diz que é isso mesmo, eu teria que criptografar antes usando um tal de crypt que não é um comando e sim uma função do sistema. Poderia até fazer um programinha em C p/ isso, mas queria outra solução mais bonita.
Alguém tem alguma idéia ou sugestão de como automatizar este processo?!?!
Obrigado,
Carlos