Em Tue, 11 Feb 2003 11:23:30 -0300, "Edson Ahlert"
<[EMAIL PROTECTED]> escreveu:

> Abaixo segue um script para criar usu�rios.
> Se poss�vel gostaria que voc�s desses uma olhadinha nele, pois
> gostaria de saber se est� certo desta forma.
> 
> -------------------------------------------------------------
> # Testa se o usu�rio j� n�o se encontra cadastrado
> grep "^$login:" /etc/passwd  > /dev/null
> if [ $? -eq 0 ]; then
>   echo ""
>   echo "Usu�rio $login j� foi criado!"
>   sleep 1
>   continue
> fi

Este teste eu faria diferente.

id $login
if [ $? -eq 0 ]; then
        printf "O usuario $login ja existe, escolha outro.\n"
        exit 1
fi

Se ja existir, entra no if e sai do script (exit 1). Se n�o existir,
continua.

> # Usu�rio � cadastrado no grupo 'alunos' com senha eceg2003
> useradd -s /bin/false -m $login -c "$nome" -g alunos -p eceg2003

useradd -s /bin/false -c "$nome" -g 'alunos' -p 'eceg2003' $login

� bom incluir as vari�veis dentro de aspas simples, eu acho. E o -m
tira:

> O que falta:
>     - por que o "-m" � o login? Procurei no help do useradd e ele fala
>     outra
> coisa do "-m";

O -m � para criar o home dir do usu�rio caso n�o exista e seja de seu
interessa que exista o home dele. Como o shell dele � /bin/false, e n�o
for utilizar o home dele para nada (ftp, maildir, sei l�), pode definir
o home dele como /dev/null e n�o usar o -m.

>     - como concateno duas strings?;

Execute no bash (funciona dentro de script tb!):
string1="Primeiro"
string2="Nome"
completo="$string1 bla bla bla $string2"
printf "$completo\n"
printf "A string1 cont�m \"$string1\" e a string2 cont�m \"$string2\"\n"

Gosto mais do printf do que do echo, d� imprimir tabula��es em quase
qualquer sistema. :)

>     - o "-p" cria uma senha criptografada. Como posso fazer para que a
>     senha
> seja realmente "eceg2003";

Vc n�o tem como armazenar senhas texto puro no passwd.

>     - n�o consegui implementar o else-if...

N�o precisa. S� o if com exit 1 dentro j� basta. Se o usu�rio j� existe,
informa e ermina a execu��o do script. Se o usu�rio n�o existe, n�o
entra no if e n�o executa o exit 1. Ali�s, exit 0 � usado para terminar
o script sem erros. exit 1 faz com que $? em seguida mostre "1". exit 64
o $? = 64. Ent�o na documenta��o do script vc explica o significado do
c�digo 1, do 2, do ... do 64...

> Qualquer ajuda ser� de grande valia!!!

T�. :)


--

    Marcio Merlone


Assinantes em 11/02/2003: 2239
Mensagens recebidas desde 07/01/1999: 200805
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
            mailto:[EMAIL PROTECTED]

Responder a