Re: adicionar usuários através de uma lista
Bom, contribuindo ou não com a lista (ou o flame? :-)
Eu considero *muito* improvável que ninguem teve esse problema antes; Entao,
fiz alguns passos:
--------------------------------
$ dpkg -S `which passwd`; #pra ver o nome do pacote que mexe com senhas
passwd: /usr/bin/passwd
$ dpkg -L passwd | grep bin; #pra ver os programas do pacote
/usr/sbin
/usr/sbin/chpasswd
/usr/sbin/groupadd
/usr/sbin/groupdel
/usr/sbin/groupmod
/usr/sbin/grpck
/usr/sbin/grpconv
/usr/sbin/grpunconv
/usr/sbin/newusers
^C^C^C
-----------------------------
Humm, esse me pareceu interessante, por isso parei no meio! Vamos lá:
-----------------------------
$ man newusers
....
This command is intended to be used in a large system environment where
many accounts are updated at a single time.
....
-----------------------------
Tá lá! Comando newusers. De quebra, vendo as coisas do
/usr/share/doc/passwd, mais uma informação interessante:
-----------------------------
$ zcat README.debian.gz
....
Though you may add users and groups with the SysV type commands,
useradd and groupadd, I recommend you add them with Debian adduser
version 3+. adduser gives you more configuration and conforms to the
Debian UID and GID allocation.
...
-----------------------------
Bom, pra terminar: o único detalhe é que o adduser não suporta o switch '-p'
pra passar a passwd pela linha de comando. Como os caras são paranóicos, eu
acho que o motivo é óbvio: se alguem der um ps ou top _bem_ na hora, ele
pega a senha! Mais chances ainda se for um batch, criando dúzias de
usuários. :-)
Solução [pra quem não sabe script]? Use o comando newusers. (Alias, o
comando 'paste' do shell pode vir a ser útil)
Vale um artigo num Zine Debian? ;-)
Pro Igor, uma pergunta: Se vc mudou a senha do user, como ele vai ler o
e-mail???? :-)
Abracos,
Marcos
Igor Morgado wrote:
Nao quero iniciar um flame....
Mas sinceramente uma pessoa que nao sabe como fazer isso nao poderia
iniciar um Zine Debian com enfoque TECNICO. (por isso que a primeira
debian zine foi TAO criticada)
A resposta para isso esta nos scripts shell...
E vamos a ela:
igor@gnutech.com.br:/# cat add_users.sh
#!/bin/bash
# Adiciona usuarios baseado numa lista deles.
#DEBUG=echo
relacao.txt
for x in `cat usuarios.txt`; do
senha=$RANDOM$RANDOM
usuario=$x
senha_crypt=`mkpasswd -Hmd5 $senha`
${DEBUG} groupadd $usuario
${DEBUG} useradd -p $senha_crypt -d /home/$usuario -g $usuario
-G users $usuario
echo $usuario:$senha >> relacao.txt
done
#!/bin/bash
# Envia mail para os usuarios dizendo q a senha deles mudou
#DEBUG=echo
for x in `cat relacao.txt`; do
USER=`echo $x | cut -d ":" -f 1`
PASS=`echo $x | cut -d ":" -f 2`
cat > corpomail.txt << EOF
Ola $USER,
Aqui quem fala eh o seu amigo admin.
Sua senha mudou pq tu demorou muito a muda-la
Agora eh $PASS.
E nao chore.
Qualquer coisa retorne o mail para /dev/null.
Sem mais,
BOFH777
EOF
$DEBUG mail -s "Troca de senha (nao entre em panico)"
$USER@dominio.com.br < corpomail.txt
done
==========================================================
Nao me perguntem sobre este script... fiz agora. e funciona aki.
E se alguem perguntar.. nao digam que foi voce que fez.. ;-D
Saudacoes GPL
Reply to: