Adicionar usuarios em lote com senha padrao

Publicado por Jônatas Ramiro Goulat (última atualização em 05/07/2011)

[ Hits: 11.966 ]

Download criausuarios.sh




Este é meu primeiro script que publico. Espero que ajude alguém :)

Ele cria varias contas no linux  com senha "123456" e força a troca da mesma no primeiro login.
O arquivo com os nomes podem ser o  nome completo , que vai ficar apenas o primeiro e o ultimo separados por ponto. Ou apenas um nome. ex:

[root@localhost tmp]# cat nome_contas
jonatas ramiro goulart
fulano rosa da silva
cicrano sousa
suzan

O resultado será a crianção das seguintes contas:
jonatas.goulart
fulano.silva
cicrano.sousa
suzan

Eu testei e funcionou no Fedora 15, Red Hat 5.6 e Centos 5.1 . Mais infelizmente não funcionou no Ubuntu por que  o passwd  não possui suporte para alterar a entrada padrão. Para saber se vai funcionar é preciso dar uma olhada no man do passwd se ele tem suporte a --stdin

E como é de bom costume , segue o link que ajudou-me

http://www.unix.com/shell-programming-scripting/41773-modify-users-password-via-script.html

peguei a dica do zazzybob ,

  



Esconder código-fonte

#!/bin/bash


SENHA="123456"         #Senha padrao para todos os logins
USUARIO=`whoami`     # Verifica qual usuario que executou o script
LISTA_USUARIOS=/tmp/nome_contas # Arquivo com a lista de nomes

# Verifica se é o root.  se nao for, termina a execução
if [ $USUARIO != "root" ] ; then
   echo "O script precisa ser executado como root"
   exit
fi



for CONTA in `sed 's/ .* /./;s/ /./' $LISTA_USUARIOS`
do

    #Verifica se a conta nao existe. Se existir, não cria novamente
    if  [ -z  `cat /etc/passwd|grep "\b$CONTA\b"` ] ; then

        # cria a conta 
        useradd -m -d /home/$CONTA $CONTA

        # altera a senha
        # Nem tudas as versoes do passwd possuem suporte ao parametro --stdin 
        echo  $SENHA  | passwd --stdin $CONTA

        # força que a senha seja trocada no primeiro login
        chage -d 0 $CONTA
    fi
done

Scripts recomendados

Firewall básico

Instalação automática do Nagios

Front-end para administração do Samba

Configurando um Servidor de Nomes no CL10 apenas respondendo algumas perguntas...

Realizar backup automático no HD externo


  

Comentários
[1] Comentário enviado por ceejay-br em 02/11/2011 - 01:32h

Alguém sabe dizer o que faz o argumento -z no if desse script?

[2] Comentário enviado por ceejay-br em 02/11/2011 - 11:00h

Já descobri ... verifica se a string seguinte e nula!
Agora vem outra dúvida:

criei um arquivo teste.txt contendo três palavras ...

casa
faculdade
trabalho

Quando executo o comando

if [ -z 'grep qualquercoisa texte.txt' ] ; then uname; fi

A saída é nula.

Porque, se a palavra não está lá?

[3] Comentário enviado por jonatas_rg em 02/11/2011 - 11:11h

@ceejay-br é porque vc esta trocando crase (`) por aspa (') , no primeiro ele pega a saida do comando, no segundo ele entende que trata-se de uma string e não de um comando.

tambem perceba que p -z é verdadeiro só quando o grep não encontrar nem uma palavra

[4] Comentário enviado por ceejay-br em 02/11/2011 - 11:47h

Valeu o retorno jonatas_rg,

Eu consegui tratar o erro com a seguinte sintaxe:

if [ -z $(grep qualquercoisa teste.txt) ] ; then uname; fi

Acho que é exatamente a mesma coisa digitada de maneira diferente!

[5] Comentário enviado por edersongs em 13/11/2011 - 09:43h

Este é o script que eu preciso porém não entendi uma coisa muito bem.
Foi dito que o erro foi tratado com a sintaxe: if [ -z $(grep qualquercoisa teste.txt) ] ; then uname; fi
Onde entre isso? É possível colocar o script já consertado para o Ubuntu?

[6] Comentário enviado por jonatas_rg em 14/11/2011 - 10:43h

Ola Edersong, você pode tentar esse link aqui http://www.cyberciti.biz/tips/howto-write-shell-script-to-add-user.html.



Precisa ter o perl instalado. Infelizmente não tenho nem uma maquina com ubuntu no momento tra testar

[7] Comentário enviado por jonatas_rg em 14/11/2011 - 10:50h

Quanto ao erro, na verdade não acontece, apenas no amigo do comentario trocou a crase(`) por aspas ('). São parecidas, mas com efeitos totalmente diferente. o que Ele fez pra arrumar , foi trocar crase por parenteses. que possui efeito quase idêntico


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts