+ Responder ao Tópico



  1. #1

    Thumbs up Resolvido problema para Adicionar 600 usuários no Linux, Samba e Squid

    Semana passada postei aqui no forum dúvidas de como adicionar 600 usuários ao linux, ao samba e ao squid, como demandaria tempo procurei por scripts na internet mas não encontrei.

    O problema era o seguinte: precisava adicionar 600 usuários no linux cada um com uma senha diferente (pré determinada), pesquisei na net e não achei nada parecido, então fui a luta..... hehehe

    O arquivo onte estavam os usuários e senha era assim:

    Usuário:senha
    Usuário:senha
    Usuário:senha
    Usuário:senha
    ......

    E assim por diam senha 600 usuáios e senhas...

    Então dei o nome ao arquivo de usuarios.txt e coloquei dentro do diretório /root

    O script ficou asim!!!

    ##################################
    #!/bin/bash
    #22/01/07
    #By Tiago Sell Iahn - Gerente de TI
    #Script para adicionar Usuarios e Senhas respectivos

    for i in `cat /root/usuarios.txt`; do
    # Recortando os usuarios e senhas que serão adicionados ao sistema
    USER=`echo $i | cut -d: -f1`
    SENHA=`echo $i | cut -d: -f2`
    echo "Adicionando o Usuario $USER"
    echo "Com a Senha $SENHA"
    useradd $USER
    echo $SENHA | passwd --stdin $USER
    echo "Adicionando o usuario ao Samba"
    smbpasswd -a $USER $SENHA
    echo "Adicionando Usuario $USER no Squid"
    # Linha que indica o local do arquivo de senhas do squid já criado anteriormente
    htpasswd -b /etc/squid/squid_passwd $USER $SENHA
    sleep 1
    done
    ###################################

  2. #2

    Padrão

    Meus parabéns. Muito interessante a solução.

    Dah pra explicar a solução SENHA=`echo $i | cut -d: -f2` ?

    Não entendi como funciona a lógica desse comando.

  3. #3
    Under-linux.Org Team Avatar de MarcusMaciel
    Ingresso
    Dec 2000
    Localização
    Boston
    Posts
    1.961
    Posts de Blog
    44

    Padrão

    a variavel $i vem do for

    e o cut -d: -f2

    que dizer que o delimitador é o : ele deve pegar o segundo campo

  4. #4

    Padrão Exatamente

    O arquivo de usuarios e senha não foi eu que fiz... eu recebi ele assim da empresa que dei consultoria.... o script foi feito para adicionar os usuário tendo usuarios e senha no mesmo arquivo....


    O "for" me manda a linha interia do arquivo "usuario:senha"
    USER=`echo $i | cut -d: -f1`
    SENHA=`echo $i | cut -d: -f2`

    Atraves destes 2 comando eu separo dizendo que o que esta antes do ":" é o usuario e o que esta depois é a senha...

    valeww

  5. #5

    Padrão

    O que eu achei interessante é que não há espaço entre o : e o -d

  6. #6

    Padrão

    No uso do "cut" após o "-d" delimitador, tem que vir um caracter.... se houver um espaço irá acusar erro.....

    ^^

  7. #7

    Padrão

    Eu postei uma outra solução pro seu problema, utilizando while, não foi?

  8. #8

    Padrão

    Bom dia galera

    xstefanox, o seu script funciona
    eram 600 usuários e 600 senha.... não queria ter que adicionar todos na mão...nem escrever logins e senhas de todos...
    mas o seu script é exelente para o dia a dia.... de ter que adicionar poucos usuários....

    Tenta isso:


    Código:
    #!/bin/bash

    while read usuario senha; do
    adduser -p "$senha" -M "$usuario";
    done < $1Utilize da seguinte maneira:


    Código:
    # adiciona_idiota arquivo.txt

    Valew.....