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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Lei de murph...


From: Jeiks
Subject: Re: [shell-script] Lei de murph...
Date: Fri, 4 Mar 2011 09:59:00 -0300

Shelleiro, sugiro umas pequenas modificações devido ao nome de login da
pessoa:
que tal:

V_login=${V_login,,} # transf. em minúscula
V_login=${V_login// /} # tira espaço em branco

ou senão, fazer:
- pedir nome e senha
- testar a saída do useradd,
- se for 0 (zero), finaliza;
- senão, remove o usuário criado e pede um nove válido ao usuário.

ou ainda, passar as responsabilidades para o adduser (pacote adduser da
debian):
- no usuário que faz a criação de novo usuário, em /etc/passwd, trocar o
/bin/bash para a /usr/sbin/novousuario e alterar sua UID para 0;
- em /usr/bin/novousuario, adicionar:
___________________________________
#!/bin/bash

read -p "Digite o login escolhido: " NOME
/usr/sbin/adduser "$NOME"
___________________________________

fica interessante também utilizar tput para cancelar CTRL+C, etc.

abs

Em 4 de março de 2011 02:23, Jose Edson Moreno Jr
<address@hidden>escreveu:

> Boa noite ..
>
> Em 3 de março de 2011 19:19, shelleiro <address@hidden> escreveu:
> >
> >
> >
> > Pessoal,
> >
> > Ao configurar o servidor criei umas 10 contas sem problemas com o
> seguinte script feito para o servidor que enunciei agora a pouco :
> >
> > useradd -p"${V_senha}" "${V_login}" -d /home/"${V_login}" 2>/dev/null
> >
>
> Primeira coisa , verifica no log a causa de erro ... normalmente lá
> você terá uma dica
> Segundo , direcione tudo que ocorre de ero para um log não para o
> null, assim tera algo com o que trabalhar em caso de erro, como agora
> e pegue a saida de retorno pra saber o que ocorreu. Alguns retornos a
> saber:
>  0 - success
>  1 - can't update password file
>  2 - invalid command syntax
>  3 - invalid argument to option
>  4 - UID already in use (and no -o)
>  6 - specified group doesn't exist
>  9 - username already in use
>  10 - can't update group file
>  12 - can't create home directory
>  13 - can't create mail spool
> Terceiro, esta tratando as entradas ? O adduser possue algumas
> restrições/recomendações como :
>    - Normalmente é recomendado usar apenas nomes que começam com
> minuscula ou um sublinhado, e que só são seguidos por letras
> minúsculas, dígitos, sublinhados, traços, e,
> opcionalmente, terminado por um cifrão.  Em termos de expressão
> regular: [a-z_] [a-z0-9_-]*[$]?
>   - Em Debian, as restrições são apenas nomes que não começem com
> ('-') ou que contenha um (':')  ou caracteres de controle ( \n, \t, \r
> ) ou um espaço.
>   - E que possua no máximo 32 caracteres
>
> PS: Informações do man
>
> >
> > Ao logar como novouser ele pergunta a senha desejada e o login, verifica
> se existe similar e se não executa este comando, pronto, teoricamente a
> pessoa já está com Shell e cadastrada no servidor, inclusive criei meu
> usuário e de MrBits pelo script e estou acessando o servidor, mas agora que
> liberei o acesso, ele não mais cria o diretório home do usuário e não dá
> acesso ssh, mas no /etc/passwd está lá cadastrado.
> >
> > Alguma dica pois já tem 22 cadastrados dentre ele pelo menos 15 sem
> acesso ao ssh por está sem diretório home, tentei criar na mão grande para o
> pessoal não ficar sem acesso mais não funcionou.
> >
> > for i in `grep "home" /etc/passwd | cut -f6 -d:`
> > do
> > V_user=`echo "$i" | cut -f3 -d\/`
> > mkdir "$i"
> > chown -R ${V_user}.${V_user} ${i}
> > done
> > Alguma idéia, pois só está com acesso os 5 primeiros que cadastrei
> pessualmente.
>
> Bom, script normalmente é feito ao gosto do cliente, mas eu faria
> desta forma, acho mais limpo e não curto muito o cut usado em
> delimitadores que variam em sua posição, e ficaria de olho nos erros
> caso houvesse :
>
> for v_user in $(awk -F: '$3>500 {printf $1" "}' /etc/passwd); do
>    v_home=$(grep "${v_user}:" /etc/passwd | awk -F: '{print $6}');
>    mkdir -p ${v_home}
>    cp -rpf /etc/skel/.[a-Z]* ${v_home}
>    cp -rpf /etc/skel/* ${v_home}
>    chown -R ${v_user}.${v_user} ${v_home}
> done
>
> PS: em '$3>500' estou informando que só quero id de usuario maior de
> 500, aqui coloque como esta em seu sistema
>
> >
> >
>
>
> --
> Jose Edson Moreno Jr.
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


-- 
Jacson R. C. Silva


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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