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

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







reply via email to

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