shell-script-pt
[Top][All Lists]
Advanced

[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.
**************************


reply via email to

[Prev in Thread] Current Thread [Next in Thread]