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

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

Re: [shell-script] SH e Passwords


From: Miranda
Subject: Re: [shell-script] SH e Passwords
Date: Wed, 18 Feb 2004 15:31:15 -0300
User-agent: KMail/1.5

PS1=usuario@host:pwd>

miranda@bass:/home/miranda>cat > psw
xamor
miranda@bass:/home/miranda>vi chpwmir
miranda@bass:/home/miranda>cat chpwmir
root@bass:/root>chmod 755 /home/miranda/chpwmir
cat /home/miranda/psw|passwd --stdin miranda
root@bass:/root>at now + 2 minutes
warning: commands will be executed using (in order) a) $SHELL b) login shell 
c) /bin/sh
at> /home/miranda/chpwmir
at> <EOT>
job 3 at 2004-02-18 15:20
On Wednesday 18 February 2004 15:01, Marcos Paulo wrote:
Executou  sem problema




> Alguem sabe se o /bin/sh tem alguma restricao para comandos como o echo
> "$senha" | passwd --stdin "$usuario" ?? porque não funciona se eu executar
> o script, nem via cron, nem manualmente.. so se digitar os comandos..
>
> O que acontece é que tenho um shellscript que é executado via crontab e
> verifica o arquivo actions.mailadm e faz as alterações pertinentes, seja
> inclusao de usario de email, seja remoçao ou seja troca de senha.
>
> O problema: executar o script a troca de senha não funciona tanto via cron,
> tanto via sh nomedoscript (ambos pelo root). agora se digito o comando ele
> roda..
>
> alguem tem alguma dica?
>
> Segue o script abaixo..
>
> #-------- mailadm.sh ------------#
>
> #!/bin/sh
>
> #define o file action list
> ndir="/var/www/html/webpoint/webmail/mailadm/"
> fal="$ndir""actions.mailadm"
> ful="$ndir""allow.mailadm"
> all="$ndir""deny.mailadm"
> pid="$ndir""pid.mailadm"
>
>
> #creating pid
> echo "READING FILES" > $pid
>
> #faz as listas
> grep -o ".*:x:[0-9]*:231:" /etc/passwd | cut -f1-2 -d":" | sort > $ful
> grep -o ".*:x:[0-9]*:[^2][^3][^1]" /etc/passwd | cut -f1-2 -d":" | sort >
> $all
>
> #verifica se o arquivo existe e é maior que zero:
> if [ -s $fal ]; then
>  while read texto
>  do
>   acao=`echo $texto | cut -f1 -d":"`
>   usuario=`echo $texto | cut -f2 -d":"`
>   senha=`echo $texto | cut -f3 -d":"`
>
>   todos=`grep "^$usuarios:x" $all`
>   pode=`grep "^$usuario:x" $ful`
>    case $acao in
>    "A")
>      #adicionar usuario
>      if [ "$todos" = "" ]; then
>       if [ "$pode" = "" ]; then
>      /usr/sbin/useradd -g popusers -s "/bin/false" -c "$usuario" -d
> "/home/guest" "$usuario" #echo "$senha" | /usr/bin/passwd --stdin
> "$usuario"
>      echo "$usuario"":""$senha" | chpasswd
>
>     fi
>      fi
>    ;;
>
>    "S")
>      #troca senha
>      if [ "$pode" != "" ]; then
>     #echo "$senha" | /usr/bin/passwd --stdin "$usuario"
>     echo "$usuario"":""$senha" | chpasswd
>
>      fi
>    ;;
>
>    "R")
>      #remover usuario
>      if [ "$pode" != "" ]; then
>     /usr/sbin/userdel $usuario
>     rm -f /var/spool/mail/"$usuario"
>     #remove do webmail
>     wf=/var/database/"$usuario"_pop.colegiouniversitario.com.br
>     if [ -d $wf ]; then
>      rm -rf $wf
>     fi
>      fi
>    ;;
>      esac
>                 dt=`date +%d/%m/%Y-%R`
>   echo "$dt - Acao: $acao Usuario: $usuario" >> /var/log/mailadm.log
>
>  done < $fal
>
>  #REMOVE THE FILE
>  rm -f $fal
> fi
>
> #faz as listas
> grep -o ".*:x:[0-9]*:231:" /etc/passwd | cut -f1-2 -d":" | sort > $ful
> grep -o ".*:x:[0-9]*:[^2][^3][^1]" /etc/passwd | cut -f1-2 -d":" | sort >
> $all
>
> #REMOVE O PID
> rm -f $pid
>
>
>
>
> #------- fim mailadm.sh -----------#
>
> Marcos
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>
> ---------------------------------------------------------------------
> 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.listasdiscussao.cjb.net
> ---------------------------------------------------------------------
>
> Links do Yahoo! Grupos
> Para visitar o site do seu grupo, acesse:
>  http://br.groups.yahoo.com/group/shell-script/
>
> Para sair deste grupo, envie um e-mail para:
>  address@hidden
>
> O uso que você faz do Yahoo! Grupos está sujeito aos:
>  http://br.yahoo.com/info/utos.html



reply via email to

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