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

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

Re: [shell-script] Remover usuarios sem acesso


From: Marcos Paulo
Subject: Re: [shell-script] Remover usuarios sem acesso
Date: Wed, 15 Dec 2004 11:52:41 -0200

eu uso o script abaixo, de autoria minha.

os arquivos secure.mailadm é um arquivo ja criado para assegurar que contas 
como root, e todas as contas do sistema nao serao removidos.

os usuarios pop sao os q tem gid = 231 que sao do grupo popusers
o pid eh pra evitar o cadastramento e a alteracao de qquer conta pela interface 
web enquanto este script roda.


qualquer duvida ou sugestao para melhorar o script será bem vinda.

Att. 

Marcos


#!/bin/sh
##########################################################################
#                                                                        #
#                                                                        #
#               SISTEMA PARA ADMINISTRAÇÃO DO WEBMAIL                    #
#     Le o diretório de emails e verifica as contas que não são          #
#            acessadas em X dias, e apaga-as    #
#                                                                        #
##########################################################################


#DEFINE AS VARIÁVEIS
dias=60
ndir="/var/www/html/webpoint/webmail/mailadm/"

tusers="${ndir}delusers.mailadm"
nbackup="${ndir}backup/"
tsecure="${ndir}secure.mailadm"
pid="${ndir}pid.mailadm"
ful="${ndir}allow.mailadm"

maildir="/var/spool/mail/"

#CRIA O PID
echo "VERIFICANDO USUÁRIOS" > $pid

#LIMPA O BACKUP


#CRIA O ARQUIVO DE USUÁRIOS
find "$maildir" -atime +"${dias}" -type f -printf "%f X\r\n" | sort > $tusers

if [ -s "$tusers" ]; then

 while read texto
 do

  usuario=`echo $texto | cut -f1 -d" "`

  pode=`grep "^${usuario}:x" $ful`

  npode=`grep "^${usuario};" $tsecure`

  if [ "$pode" != "" ]; then

   if [ "$npode" = "" ]; then

    udt="/var/database/${usuario}_pop.colegiouniversitario.com.br"

    #faz backup do mail
    if [ -s "${maildir}${usuario}" ]; then
     tar -cPzf "${nbackup}${usuario}.tar" "${maildir}${usuario}"
     rm -f "${maildir}${usuario}"
    fi
    #faz backup do webmail
    if [ -d "${udt}" ]; then
     tar -cPzf "${nbackup}${usuario}_webmail.tar" "${udt}"
     rm -rf "${udt}"
    fi

    /usr/sbin/userdel ${usuario}
   fi

  fi
 done < $tusers

 #REMOVE O ARQUIVO DE USUARIOS
 rm -f $tusers
fi

#REFAZ A LISTA DE USUARIOS POP
grep -o ".*:x:[0-9]*:231:" /etc/passwd | cut -f1-2 -d":" | sort > $ful

#REMOVE O PID
rm -f $pid

exit 0



----- Original Message ----- 
From: Pedro Henrique Ponchio 
To: address@hidden 
Sent: Wednesday, December 15, 2004 12:13 PM
Subject: RE: [shell-script] Remover usuarios sem acesso



Olá Diniz, 

Na verdade não é a data de modificação (que se vê como comando ls -la) mas sim 
a data do último ACESSO ao arquivo (feito pelo usuário). Portanto o comando (ls 
-la --time=access) te dará quando foi o último acesso do usuário ao arquivo 
mail. basta filtrar por data pra saber quando foi o último acesso ao email de 
cada usuário. 

Abraço
PH

-----Original Message----- 
From: Diniz Alexandre Daminelli [mailto:address@hidden] 
Sent: Tue 14/12/2004 21:16 
To: address@hidden 
Cc: 
Subject: Re: [shell-script] Remover usuarios sem acesso




O que faz este comando?
<ls -la --time=access /var/mail>

na saida simplesmente me mostrou a listagem do diretorio...é isso mesmo?

outras coisa...se sua idéia era pegar a data da ultima modificação do
arquivo,....acho que isso nao funcionará, pois cada vez que o usuario recebe
um e-mail a data é atualizada...assim vai demonstrar erronhamente que ele
está checando seus e-mail's, mas o que está acontecendo na verdade é que ele
está recebendo, mas não necessariamente checando seus e-mail's.

[]'s
Diniz


[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.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 





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



reply via email to

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