[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Script dando maior trabalho...
From: |
Reinaldo Marques de Lima |
Subject: |
Re: Script dando maior trabalho... |
Date: |
Mon, 22 May 2006 20:25:18 -0000 |
User-agent: |
eGroups-EW/0.82 |
Cara,
1) o shell vai reconhecer como se fosse 2 parametros...tem que ser
mesmo Nome e sobrenome?
não pode ser tipo: "Fernando_Paiva"?
2) manda a saida de "cat /etc/group | grep $grupo" para uma variavel e
usa a opção -z do test como vc tem feito.
para melhorar o filtro use assim:
> cut -d: -f1 /etc/group | grep '$grupo'
ou assim:
> sed '/'$grupo':/!d;s/\('$grupo'\):.*/\1/' /etc/group
3) não tenho certeza, mas esse arquivo group- é lido somente pelo
root, não é um arquivo que foi duplicado quando você roda o script.
4) da pra melhorar bastante seu script, se quiser me mande um email em
PVT e eu te dou uma ajuda, blz?
email: address@hidden
[]'s
Reinaldo
--- Em address@hidden, "pythondeveloper"
<pythondeveloper@y...> escreveu
>
> Salve salve galera...
>
> Estou criando um script para adicionar um usuario no Linux e assim que
> cadastrar o usuario ele ja esteja cadastrado no samba. Vejam.
>
> #!/bin/bash
> # Cadastra Usuarios
> clear
> Principal(){
> echo "Deseja cadastrar um novo usuario para o sistema? [sn]"
> read resposta
> if [ $resposta != 's' -a $resposta != 'n' ]; then
> echo "Voce precisa decidir por s ou n"
> exit
> fi
>
> if [ -z $resposta ]; then
> echo "Informe a opcao desejada"
> exit
> fi
> test $resposta = "n" && exit
>
> echo "Digite o nome do usuario:"
> read nome
> if [ -z $nome ]; then
> echo "Informe o nome"
> exit
> fi
>
> echo "Digite o grupo que o usuario ira participar:"
> read grupo
> if [ -z $grupo ]; then
> echo "Grupo vazio"
> exit
> fi
>
> cat /etc/group | grep $grupo
> if [ $? = 0 ]; then
> echo "O grupo ( $grupo ), e necessario um grupo valido para
> continuar, devo adicionar o grupo $grupo ?[sn]"
> read AdicionaGrupo
> fi
>
> if [ $AdicionaGrupo != 's' -a $AdicionaGrupo != 'n' ]; then
> echo "Voce precisa decidir por s ou n"
> exit
> fi
>
> if [ $AdicionaGrupo = 's' ]; then
> groupadd $grupo
> echo "O grupo ( $grupo ), foi adicionado com sucesso"
> else
> echo "E preciso um grupo valido para continuar"
> exit
> fi
>
> echo "Digite o login do usuario:"
> read login_
> if [ -z $login_ ]; then
> echo "Informe o login"
> exit
> fi
>
> grep $login_ /etc/passwd ; echo "Procurando por $login_"
> if [ $? = 0 ]; then
> echo "O usuario $login_, ja esta cadastrado no sistema"
> exit
> else
> useradd -g $grupo -c "$nome" -m -d /home/"$login_" $login_
> fi
>
> echo "Senha para usuario $login:"
> passwd $login_
>
> echo "Deseja que $login_ esteja no Samba ?[sn]"
> read Resposta_Samba
> if [ -z $Resposta_Samba ]; then
> echo "Escolha s ou n"
> exit
> fi
>
> if [ $Resposta_Samba = 's' ]; then
> CadastraSamba
> else
> echo "Usuario $login_, cadastrado no sistema com sucesso..."
> id $login_
> Principal
> fi
> }
>
> CadastraSamba(){
> echo "Digite a senha para o samba:"
> smbpasswd -a $login_
> killall smbd -HUP
> killall nmbd -HUP
> Principal
> }
> Principal
>
> #EOF
>
> 1) Onde eu Adiciono o "Nome" do usuário, se estiver com espacos da
> erro...exemplo:
> Nome do Usuario
> Fernando Paiva
>
> Da o seguinte erro => /usr/sbin/cadastrausuario: line 20: [: Fernando:
> binary operator expected
>
> 2) No comando grep quero pegar o retorno se ele encontrou ou nao uma
> ocorrencia do nome do grupo no arquivo "/etc/group"
>
> 3) Tem horas que ele adiciona o grupo, mas cria uma copia do arquivo
> "group" em /etc ficando os dois arquivos assim
>
> group- group
>
> Não estou entendendo o pq acontece esses erros, as sintaxes estao
> erradas ?
>
> desde ja, agradeço
> []'s
> Fernando Paiva
>