[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Criar usuarios
From: |
Gustavo Adolfo Kellermann |
Subject: |
Re: [shell-script] Criar usuarios |
Date: |
Tue, 8 Jul 2003 16:02:56 -0300 |
O passwd realmente não tem opção para passar a senha, o que é bom, pois
assim os usuários não deixam sua senha no history.
Agora vi o e-mail sobre a opcao --stdin. Bom, ainda assim acho que meu
mail é válido, pois essa extensão não existe no FreeBSD, por exemplo.
Uma solução é utilizar o expect (http://expect.nist.gov/) um programa
excelente para se lidar com comandos interativos, seja localmente ou via
conexão de rede... quem nunca quis automatizar uma tarefa com telnet ou
ssh? o expect se propõe a resolver esse problema.
O expect é baseado em TCL, e está presente nas distribuições que eu uso
(Red Hat, Mandrake) e pode ser colocado em qq sistema onde tenha TCL.
man expect eh bem, bem extenso...
Bom, mas resolvendo teu problema, um script para trocar a senha dos
usuários seria, supondo que vc tenha um arquivo com um usuario por linha,
o username primeiro e a senha depois:
cat usuarios.txt | while read USER PASS ; do
adduser -s /dev/null $USER
echo 'spawn passwd '$USER'
expect "password:"
send '$PASS'
send "\r"
expect "password:"
send '$PASS'
send "\r"' | expect - > /dev/null
done
Ele teria de ser aperfeiçoado para lidar com erros do passwd, como, por
exemplo, senha muita curta. E tb para não ser necessário aquele redirect
para /dev/null limpando a saída do comando.
Nota-se que é simples: executa um comando com o spawn, depois espera por
uma determinada string, e em resposta envia dados. O expect tem um
conjunto bem rico de comandos, mas como esse é meu primeiro script, eu tb
não tenho como ajudar mais :-)
On Tue, 08 Jul 2003 18:08:58 +0000
"gerusso2003" <address@hidden> wrote:
> Ola pessoal !!!!
>
> Sou novo na lista e ja venho com duvidas!!!!!!
> Estou criando um script para adicionar usuario no linux e no samba
> pegando os mesmos de uma lista.
>
> usuario senha
>
> Consigo fazer a criacao do usuario porem estou tendo que digitar a
> senha. O que faco para passar o paramentro senha para o comando
> passwd.
>
> #!/bin/bash
> for usuario in `cat usuario`
> do
> adduser -s /dev/null $usuario
> for senha in `cat senha`
> do
> passwd $usuario (preciso passar o parametro $senha que para o passwd)
>
> done
> done
> Como faco isso!!!!!!!!!!
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação,
> como perl, C etc. Quem insistir em não seguir esta regra será moderado
> sem prévio
> aviso.-----------------------------------------------------------------
> ---- Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listasdiscussao.cjb.net
> ---------------------------------------------------------------------
>
>
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://br.yahoo.com/info/utos.html
>
>
>
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: VirusScan / Atualizado em 02/07/2003 / Versão: 1.3.13
> Proteja o seu e-mail Terra: http://www.emailprotegido.terra.com.br/
>
>
--
**************************
Gustavo Adolfo Kellermann
address@hidden
Terra Networks Brasil S.A.
**************************