Gerência do Squid

Publicado por Jonathan Lessa (última atualização em 29/06/2011)

[ Hits: 7.211 ]

Download sudo_manutencao.sh




Gerenciando o Squid com opções de adicionar/remover usuários, bloquear/liberar sites, verificar status da conexão, verificar status do squid, limpar o cache do squid.

*** Descomentar as linhas abaixo no squid.conf:

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/conf/pass.geral
auth_param basic children 5
auth_param basic realm Proxy InfoNet


*** Adicionar as linhas abaixo no squid.conf:

###
#Definindo acls para o script de Manutencao
###
acl sites_liberados_restrito url_regex "/etc/squid/conf/sites_liberados_Restrito"
acl palavras_liberadas_restrito url_regex "/etc/squid/conf/palavras_liberadas_Restrito"
acl sites_bloqueados_restrito2 dstdom_regex "/etc/squid/conf/sites_bloqueados_Restrito2"
acl sites_liberados_geral url_regex "/etc/squid/conf/sites_liberados_Geral"
acl sites_bloqueados_geral url_regex "/etc/squid/conf/sites_bloqueados_Geral"

###
#Definindo acls dos grupos
###
acl gerencia proxy_auth "/etc/squid/conf/users_Gerencia"
acl restrito proxy_auth "/etc/squid/conf/users_Restrito"
acl restrito2 proxy_auth "/etc/squid/conf/users_Restrito2"


http_access allow MAONET gerencia
http_access allow MAONET sites_liberados_geral
http_access deny MAONET sites_bloqueados_geral
http_access allow MAONET restrito2 !sites_bloqueados_restrito2
http_access allow MAONET restrito sites_liberados_restrito
http_access allow MAONET restrito palavras_liberadas_restrito




*** {01.00.001} Comandos a serem executados para devido funcionamento do script

>/etc/squid/conf/sites_liberados_Restrito
>/etc/squid/conf/palavras_liberadas_Restrito
>/etc/squid/conf/sites_bloqueados_Restrito2
>/etc/squid/conf/sites_liberados_Geral
>/etc/squid/conf/sites_bloqueados_Geral
>/etc/squid/conf/users_Gerencia
>/etc/squid/conf/users_Restrito
>/etc/squid/conf/users_Restrito2
chmod 777 /etc/squid/conf/sites_*
chmod 777 /etc/squid/conf/users_*
chmod 777 /etc/squid/conf/palavras_liberadas_Restrito
htpasswd -bc /etc/squid/conf/pass.geral infonet teste
mkdir /var/log/manutencao
>/var/log/manutencao/manutencao.log
chmod -R 777 /var/log/manutencao
mkdir /etc/squid/bkp/
chmod 777 /etc/squid/bkp/
groupadd webmaster
useradd manutencao -g webmaster
passwd manutencao SENHA_DO_USUARIO_MANUTENCAO


Obs.: Caso o IP que esteja aparecendo esteja errado no menu 9, será necessário alterar no script a linha abaixo, informando a interface de conexão correta:

internet=ppp0


   *** Descrição dos Grupos: ***
   Gerencia: tem acesso a irrestrito
   Restrito: tem acesso somente aos sites cadastrados como liberados
   Restrito2: tem acesso a todos os sites, exceto os cadastrados como bloqueados

  



Esconder código-fonte

#!/bin/bash
#Srcipt para manutencao de usuarios/grupos e controle de acesso SQUID
#Autor: Jonathan Lessa   -InfoNet - Solucoes Internet
#Data: 17/05/2010

#Definicao de variaveis
arqusuarios="/etc/squid/conf/pass.geral"
dirusuarios="/etc/squid/conf/"
dirbackupusuarios="/etc/squid/bkp/"
logfile=/var/log/manutencao/manutencao.log
internet=ppp0
opcao=
grupos[0]="Gerencia"
grupos[1]="Restrito" 
grupos[2]="Restrito2" 
#grupos[3]="MsnBloqueado"

function listarGrupos() {
   i=0;
   for grupo in ${grupos[@]}
   do
      ((++i));
      echo "$i) - $grupo";
   done
}

while true
do
clear
echo "                  InfoNet - Solucoes Internet                      
   Script para manutencao de usuarios e controle de acesso SQUID

   Selecione a opcao desejada:

1 - Cadastrar usuario
2 - Alterar usuario
3 - Excluir usuario
4 - Listar usuarios
5 - Bloquear site
6 - Liberar/Desloquear site
7 - Listar sites Liberados/Bloqueados
8 - Manutencao do SQUID
9 - Status do sistema
0 - Sair"
   tput cup 18 0; tput el; read -p "Opcao: " opcao;
#   [[ $opcao == 0 ]] && break;
i=0
existe=
clear;
case "$opcao" in
  1 )    echo "Cadastro e Usuario";
   echo "==================";
   echo "";
   read -p "Digite o nome do usuario: " usuario1;
   usuario=$(eval echo $usuario1 | tr [[:upper:]] [[:lower:]])
   #existe=$( grep ^$usuario':' "$arqusuarios");
   grep ^$usuario':' "$arqusuarios";
   (( $? != 0)) && {
      read -p "Digite a senha do usuario: " senha;
           echo "";
           echo "==================================";
           echo "Selecione o gupo no qual deseja cadastrar o usuario:";
           echo "==================================";
           echo "$(listarGrupos)";
      echo "0) - Cancelar cadastro"
           read -p "Grupo: " opgrupo;
      echo "";
      case $opgrupo in
                  [1-${#grupos[@]}] ) {
              grupo=${grupos[`eval echo $(( opgrupo - 1 ))`]};
              arqgrupo=$dirusuarios"users_"$grupo;
         eval htpasswd -b "$arqusuarios" "$usuario" "$senha" 1>/dev/null 2>/dev/null;
         echo $usuario >> $arqgrupo;
         echo $(date +%d%m%Y)" = cadastrado usuario: $usuario senha: $senha grupo: $grupo" >> $logfile;
         echo Usuario "$usuario" cadastrado com sucesso!;
         service squid reload 1>/dev/null 2>/dev/null;
        };
        ;;
        0 ) echo "Cadastro Cancelado!";
        ;;
        * ) echo "Grupo invalido";
        ;;
      esac;
   } || {
      echo "";
      echo "Usuario ja existe";
   };
   echo "";
   read -p "Pressione Enter para voltar para o menu principal" OK;
   ;;
   2 )   echo "Alteracao de Usuario";
   echo "====================";
   echo "";
   read -p "informe o login do usuario: " usuario;
   grep '^'$usuario':' $arqusuarios 1>/dev/null 2>/dev/null;
   (( $? != 0 )) && {
      echo "";
      echo "Usuario nao encontrado!";
   } || {
   clear;
   echo Usuario $usuario encontrado. As alteracoes abaixo serao aplicadas a este usuario!
   echo "====================";
   (( $? == 0 )) && {
      echo "Selecione uma das opcoes a seguir:";
      echo "=================================="
      echo "";
      echo "1) Inserir usuario em grupo";
      echo "2) Alterar usuario de grupo";
      echo "3) Excluir usuario de grupo";
      echo "4) Alterar senha de usuario";
      echo "0) Voltar ao Menu Principal";
      echo "";
      read -p "Opcao: " opusuario;
      case $opusuario in
        1 ) clear;
          echo "A qual Grupo deseja adicionar o usuario ($usuario)?";
          echo "$(listarGrupos)";
          echo "0) - Cancelar operacao"
                    read -p "Grupo: " opgrupo;
          echo "";
                    echo "";
                    case $opgrupo in
                     [1-${#grupos[@]}] ) {
               grupo=${grupos[`eval echo $(( opgrupo - 1 ))`]};
                         arqgrupo=$dirusuarios"users_"$grupo;
               echo "";
               grep '^'$usuario'$' $arqgrupo;
               (( $? == 0 )) && {
            echo "Este usuario ja esta neste grupo!";
            } || { 
            echo $usuario >> $arqgrupo;
            echo "$(date +%d%m%Y) = Usuario $usuario cadastrado no grupo: $grupo" >> $logfile;
            echo "Usuario $usuario cadastrado no grupo $grupo";
               };
         };
         service squid reload 1>/dev/null 2>/dev/null;
         ;;
         0 ) echo "Operacao cancelada!";
         ;;
         * ) echo "Opcao Invalida!";
         ;;
            esac;
          ;;
        2 ) clear;
          echo "Migrando o usuario ($usuario) de Grupo:";
          echo "============================";       
          echo "$(listarGrupos)";
          echo "0) - Cancelar Operacao";
          read -p "Grupo Atual: " opgrupoorigem;
          case $opgrupoorigem in
                     [1-${#grupos[@]}] ) {
           grupoo=${grupos[`eval echo $(( opgrupoorigem - 1 ))`]};
                         arqgrupoo=$dirusuarios"users_"$grupoo;
           grep '^'$usuario'$' $arqgrupoo;
                          echo "";
                          (( $? != 0 )) && {
                                echo "Este usuario nao esta no grupo informado";
                          } || {
               read -p "Novo Grupo : " opgrupodestino;      
           case $opgrupodestino in
           [1-${#grupos[@]}] ) {
                 grupod=${grupos[`eval echo $(( opgrupodestino - 1 ))`]};
                          arqgrupod=$dirusuarios"users_"$grupod;
             grep '^'$usuario'$' $arqgrupod 1>/dev/null 2>/dev/null;
             (( $? == 0 )) && {
              echo "";
            echo "Este usuario ja esta no Novo Grupo";
             } || {
               eval sed -i.bkp$(date +%d-%m-%Y) /^$usuario$/d $arqgrupoo;
                echo $usuario >> $arqgrupod;
                echo $(date +%d%m%Y) " usuario $usuario movido do grupo $grupoo para o grupo $grupod" >> $logfile;
                echo "";
                echo "";
               echo "Usuario $usuario movido do grupo $grupoo para o grupo $grupod";
            };
                 };
             service squid reload 1>/dev/null 2>/dev/null;
             ;;
             0 ) echo "Operacao Cancelada!";
             ;;
             * ) echo "Opcao Invalida";
             ;;
             esac;
           };
           };
           ;;
         0 ) echo "Operacao Cancelada!";
         ;;
         * ) echo "Opcao Invalida";
         ;;
         esac;
        ;;
        3 ) clear;
          clear;
                    echo "Excluindo o usuario ($usuario) de Grupo:";
                    echo "================================";
                    echo "$(listarGrupos)";
          echo "0) - Cancelar Operacao"
                    read -p "Grupo: " opgrupo;
          case $opgrupo in
         [1-${#grupos[@]}] ) {
               grupo=${grupos[`eval echo $(( opgrupo - 1 ))`]};
               arqgrupo=$dirusuarios"users_"$grupo;
                         grep '^'$usuario'$' $arqgrupo 1>/dev/null 2>/dev/null;
                         (( $? == 0 )) && {
                           sed -i.bkp$(date +%d-%m-%Y) /^$usuario$/d $arqgrupo;
                           echo $(date +%d%m%Y) " usuario $usuario removido do grupo $grupo" >> $logfile;
                           echo "";
                           echo "";
                           echo "Usuario $usuario removido do grupo $grupo";
             service squid reload 1>/dev/null 2>/dev/null;
               } || {
                 echo"";
                 echo "Usuario nao encontrado neste Grupo!";
               };
         };
         ;;
         0 ) echo "Operacao Cancelada!"
         ;;
         * ) echo "Opcao invalida!";
         ;;
         esac;
        ;;
        4 ) clear;
          echo "ALteracao de Senha";
          echo "==================";   
          echo "";
          echo "Usuario: $usuario";
          read -p "Digite a nova senha: " senha;
          htpasswd -b $arqusuarios $usuario $senha 1>/dev/null 2>/dev/null;
          echo "$(date) => Senha do usuario $usuario alterada para $senha" >> $logfile;
          echo "Senha Alterada!";
          service squid reload 1>/dev/null 2>/dev/null;
        ;;
        0 )
        ;;
        * ) echo "Opcao Invalida";
        ;;
   esac;
   mv -f $dirusuarios*.bkp* $dirbackupusuarios 1>/dev/nulll 2>/dev/null;
   };
   };
   echo "";
   read -p "Pressione Enter para voltar para o menu principal" OK;
   ;;
   3 ) echo "Exclusao de Usuario";
   echo "==================";
   echo "";
   read -p "Digite o nome do usuario que deseja excluir: " usuario;
   grep '^'$usuario':' $arqusuarios 1>/dev/null 2>/dev/null;
   (( $? != 0 )) && {
      echo "Usuario nao encontrado!";
   } || {
      read -p "Tem certeza que deseja excluir $usuario do acesso a internet? (S/n): " resp;
      case $resp in
        [sS] ) eval htpasswd -D $arqusuarios $usuario;
         for arqgrupos in $(grep -r "^$usuario$" $dirusuarios | cut -d: -f1)
         do
            eval sed -i.bkp$(date +%d-%m-%Y) /^$usuario$/d $arqgrupos 1>/dev/null 2>/dev/null;
            mv -f $dirusuarios"*.bkp*" $dirbackupusuarios 1>/dev/null 2>/dev/null;
         done;
         echo "" && echo "Usuario removido";
         service squid reload 1>/dev/null 2>/dev/null;
         ;;
         
        [nN] ) echo "" && echo Exclusao Cancelada;
         ;;
        * ) echo "Opcao Invalida. Operacao cancelada." ;;
      esac;
   }
   echo "";
   read -p "Pressione Enter para voltar para o menu principal" OK;
    ;;
    4 ) clear;
   echo "Selecione o grupo para listar os usuarios"
   echo "$(listarGrupos)";
   echo "0) - Todos";
    #   while true
#   do
   read -p "Opcao: " opgrupo;
   case "$opgrupo" in
                [0-${#grupos[@]}] ) {
      [ $opgrupo = 0 ] && {
      clear
      echo "====================";
      echo "Listagem de Usuarios";
      echo "====================";
      echo "";
      contgrupo=0;
      for grupo in ${grupos[@]} 
      do
         eval echo "Usuarios do grupo" ${grupos[$contgrupo]};
         echo "-------------------------------";
         eval cat -n "/etc/squid/conf/users_"${grupos[$contgrupo]};
         echo "";
         echo "-------------------------------";
         (( ++contgrupo ));
         (( $contgrupo == ${#grupos[@]} )) || { tput sc ; echo "Pressione Enter para listar o proximo Grupo" ; read ok ; tput rc; tput el; };
      done;
      } || {
      clear;
      echo "====================";
      echo "Listagem de Usuarios";
      echo "====================";
      echo "";
      echo "Usuarios do grupo" ${grupos[`eval echo $(( opgrupo -1 ))`]};
      echo "--------------------------------";
      cat -n $dirusuarios"users_"${grupos[`eval echo $(( opgrupo -1 ))`]};
      echo "";
      echo "--------------------------------";
      };
      };;
      * ) echo "Opcao invalida!"
      ;;
   esac;
   echo "";
      read -p "Pressione enter para voltar ao menu principal...";
   ;;
   5 ) clear;
   echo "Bloqueio de Site";
   echo "================" && echo "";
   echo "digite a URL a ser bloqueada (OBS.: Nao digite o 'www.' Ex.: playboy.com.br ou batepapo.uol.com.br)" && echo "";
        read -p "Site: " opsite;
        [[ -z $opsite ]] || {
     echo "Selecione o grupo para efetuar o bloqueio do site"
     echo "$(listarGrupos)";
     echo "0) - Todos" && echo "";
     read -p "Opcao: " opgrupo && echo "";
          case "$opgrupo" in
                [1-${#grupos[@]}] ) {
         echo $opsite >> $dirusuarios"sites_bloqueados_""${grupos[`eval echo $(( opgrupo -1 ))`]}";
         echo "$(date +%d%m%Y) => a URL $opsite foi bloqueada para o grupo ${grupos[`eval echo $(( opgrupo -1 ))`]}" >> $logfile;
         echo "Site bloqueado para o grupo "${grupos[`eval echo $(( opgrupo -1 ))`]};
         service squid reload 1>/dev/null 2>/dev/null;
      };
      ;;
      0 ) echo $opsite >> $dirusuarios"sites_bloqueados_Geral";
          echo "Site $opsite inserido na lista de bloqueio geral!";
          echo "$(date +%d%m%Y) => a URL $opsite foi bloqueada para todos os grupos" >> $logfile;
          service squid reload 1>/dev/null 2>/dev/null;
      ;;
      * ) echo "Opcao Invalida!";
      ;;
   esac;
   };
      echo "" && read -p "Pressione enter para voltar ao menu principal...";
    ;;
    6 ) clear;
   echo "Liberar/Desbloquear Site";
   echo "========================" && echo "";
   echo "digite a URL a ser liberada/desbloqueada (OBS.: Nao digite o 'www.' Ex.: playboy.com.br ou batepapo.uol.com.br)" && echo "";
   read -p "Site: " opsite; 
        [[ -z $opsite ]] || {
     echo "$(listarGrupos)";
     echo "0) - Todos" && echo "";
     echo "Selecione o grupo para efetuar o desbloqueio/liberacao do site";
     read -p "Grupo: " opgrupo && echo "";
      case "$opgrupo" in
                [1-${#grupos[@]}] ) {
          grupo=${grupos[`eval echo $(( opgrupo -1 ))`]};
          arqgrupo=$dirusuarios"sites_bloqueados_"$grupo;
        eval sed -i.bkp$(date +%d-%m-%Y) /^$opsite$/d $arqgrupo;
        echo "$(date +%d%m%Y) => a URL $opsite foi desbloqueada para o grupo $grupo" >> $logfile;
        echo $opsite >> $dirusuarios"sites_liberados_"$grupo;
        echo "Site liberado para o grupo $grupo";
        service squid reload 1>/dev/null 2>/dev/null;
      } ;;
      0 ) {
        eval sed -i.bkp$(date +%d%m%Y) /^$opsite$/d $dirusuarios"sites_bloqueados_Geral";
        echo "$(date +%d%m%Y) => a URL $opsite foi desbloqueada para todos os gruposo" >> $logfile;
        echo $opsite >> $dirusuarios"sites_liberados_Geral";
        echo "Site liberado para todos!";
        echo "$(date +%d%m%Y) => a URL $opsite foi liberada para todos os gruposo" >> $logfile;
        service squid reload 1>/dev/null 2>/dev/null;
      } ;;
      * ) echo "Opcao Invalida!";
      ;;
   esac;
   mv -f $dirusuarios"*.bkp*" $arqbackupusuarios 1>/dev/null 2>/dev/null;
   };
   echo "" && read -p "Pressione Enter para voltar ao Menu Principal..";
    ;; 
    7 ) clear;
   echo "Listagem de sites";
   echo "=================";
   echo "Deseja listar os sites (L)iberados ou (B)loqueados?";
   read -p "Opcao: " oplistar;
   echo "";
   listar="";
   case $oplistar in
     [Ll] ) listar=liberados;
     ;;
     [Bb] ) listar=bloqueados;
     ;;
     * ) echo "Opcao Invalida";
   esac;
   [[ ! -z $listar ]] && {   
     echo "Selecione o grupo para listar os sites $listar";
          echo "$(listarGrupos)";
          echo "0) - Todos";
          read -p "Opcao: " opgrupo;
         case "$opgrupo" in
      [1-${#grupos[@]}] ) {
         grupo=${grupos[`eval echo $(( opgrupo -1 ))`]};
         arqgrupo=$dirusuarios"sites_"$listar"_"$grupo;
         echo ">>> Sites $listar para o grupo: $grupo";
         echo "==============================";
         more $arqgrupo;
         echo "==============================" && echo "";
      } ;;
      0 ) {
         echo ">>> Sites $listar Geral";
         echo "==============================";
         more $dirusuarios"sites_"$listar"_Geral";
         echo "==============================" && echo "";
      } ;;
      * ) echo "Opcao Invalida!!!";
      ;;
     esac;
   };
   echo "" && read -p "Pressione enter para voltar ao menu principal...";
   ;;
   8 ) clear
       echo "Manutencao do SQUID"
       echo
       echo "Selecione a opcao desejada:"
       echo
      # echo "1 - Gerar relatorio de acesso agora"
       echo "1 - Limpar o cache"
       echo "2 - Reiniciar o SQUID"
       echo "3 - Parar o iptables" 
       echo "4 - Iniciar ou reiniciar o iptables"
       echo "0 - Voltar ao menu principal"
       read -p "Opcao: " op8;
       case $op8 in
#   1 ) echo "Gerando relatorio... Aguarde!"
#   data=`date -d yesterday "+%d/%m/%Y"`-`date "+%d/%m/%Y"`
#   /usr/bin/sarg -i -f /etc/sarg/sarg-daily.conf -d $data
#   echo "Operacao concluida" && sleep 2 
#   ;;
   1 ) echo "Aguarde... limpando o cache do SQUID";
   service squid stop;
   rm -fr /var/spool/squid/*;
   service squid start ;
   echo "Cache excluido com sucesso!";
   ;;
   2 ) echo "Aguarde... Reiniciando o SQUID"
   service squid restart;
   echo "SQUID reiniciado com sucesso";
   ;;
   3 ) echo "Parando o iptables..."
   service iptables stop 1>/dev/null 2>/dev/null && echo"";
   echo "O iptables foi desligado";
   ;;
   4 ) echo "Reiniciando o iptables" 
   /etc/rc.d/firewall.sh 1>/dev/null 2>/dev/null && echo"";
   echo "O iptables foi inicializado";
   ;;
   0 ) echo "Cancelando Operacao..."
   ;;
   * ) echo "Opcao Invalida";
   ;;
       esac;
   echo "" && read -p "Pressione Enter para voltar ao Menu Principal";
   ;;
   9 )  conexao=inativa
   squid=parado
   clear
       echo "Obtendo Informacoes do sistema... Aguarde!"
       #ifconfig | grep ppp0;
        ping -c 2 200.241.52.1 | grep "100% packet loss" 1>/dev/null 2>/dev/null;
   (( $? != 0)) && {
      conexao=ativa;
      ip=$(ifconfig $internet | grep inet | awk '{print $2}' | awk -F : '{print $2}');
      } || {
         echo "Aguarde! conectando..." && /etc/rc.d/velox_test.pl;
          #ifconfig | grep ppp0;
           ping -c 2 200.241.52.1 | grep "100% packet loss" 1>/dev/null 2>/dev/null;
      (( $? != 0)) && {
         conexao=ativa;
         ip=$(ifconfig $internet | grep inet | awk '{print $2}' | awk -F : '{print $2}');
         echo "Conexao estabelecida";
         echo "IP da conexao: $ip";
      };
   };
   echo "" && echo "Data do sistema: $(date +%A,\ %d\ de\ %B\ de\ %Y\ Hora:\ %H:%M)";
       echo "" && echo "Status da conexao: $conexao";
   [[ $conexao == "inativa" ]] && {
           echo "" && echo "Nao foi possivel se comunicar com o servidor da InfoNet.";
      echo "" && echo "Entre em contato com o Suporte Tecnico da InfoNet: (79) 2106-8000";
   } || {
      echo "" && echo "Conexao com a internet OK";
      echo "IP da conexao: $ip";
   };
        echo "";
   echo "-----------------"
        echo "Analise do disco:";
   echo "-----------------"
        echo "Tamanho total do HD: $(df -h | sed 's/[ ]\+/:/g' | grep "/"$ | cut -d: -f2)";
        echo "Espaco utilizado: $(df -h | sed 's/[ ]\+/:/g' | grep "/"$ | cut -d: -f3) = $(df -h | sed 's/[ ]\+/:/g' | grep "/"$ | cut -d: -f5) em uso";
        echo "Espaco disponivel: $(df -h | sed 's/[ ]\+/:/g' | grep "/"$ | cut -d: -f4)"
        echo
   infhd=$(echo $(df -h | grep "/"$) | cut -d" " -f5);
   hd=$(echo $infhd | cut -d" " -f2 | cut -d% -f1);
        (( $hd >= 95 )) && {
      echo "" && echo "Atencao! pouco espaco em disco. Limpando o disco... Aguarde!";
      service squid stop;
      cp -a /var/log/squid/access.log /var/log/access.log;
      rm -f /var/log/squid/*;
      mv /var/log/access.log /var/log/squid/access.log;
      rm -rf /var/spool/squid/*;
      service squid start;
      echo "" && echo "Limpeza de disco efetuada com sucesso..."
        };
   echo "";
        service squid status | grep "morto" 1>/dev/null 2>/dev/null;
   (( $? != 0 )) && {
      echo "SQUID esta rodando";
      } || {
      echo "O SQUID esta parado. Iniciando o SQUID... Aguarde!";
      killall -9 squid;
      service squid start;
      }
        echo "" && read -p "Pressione enter para voltar ao menu principal";
   ;;
   10 ) clear
    echo "Bloqueio de MSN"
    echo""
    echo "1 - Bloquear Usuarios"
    echo "2 - Desbloquear Usuarios"
    echo "3 - Listar Usuarios Desbloqeuados"
    echo "0 - Retornar ao Menu Principal"
    read -p "Opcao: " opcaomsn && echo "";
    case $opcaomsn in
   1 ) echo "Digite o login do usuario que deseja bloquear" && echo "";
      read -p "Usuario: " usuariomsn;      
      grep '^'$usuariomsn':' $arqusuarios 1>/dev/null 2>/dev/null;
      (( $? == 0 )) && {
         echo $usuariomsn >> $dirusuarios"users_bloqueio_MSN";
         echo "$(date) => o MSN foi bloqueado para o usuario $usuariomsn">>$logfile;
         echo "";
         echo "============================"
         echo "";
         echo "Usuario $usuariomsn bloqueado para acesso ao MSN";
         echo "";
      } || echo "Usuario nao encontrado!";
   ;;
   2 ) echo "Digite o login do usuario que deseja desbloquear" && echo "";
      read -p "Usuario: " usuariomsn && echo "";
      grep '^'$usuariomsn'$' $dirusuarios"users_bloqueio_MSN" 1>/dev/null 2>/dev/null;
      (( $? == 0 )) && {
         sed -i.bkp /^$usuariomsn$/d $dirusuarios"users_bloqueio_MSN";
         echo "$(date +%d%m%Y) => o MSN foi desbloqueado para o usuario $usuariomsn">>$logfile;
         echo "";
         echo "";
         echo "Usuario $usuariomsn desbloqueado para acesso ao MSN";
      } || echo "Usuario não encontrado";
   ;;
   3 ) echo "Usuarios bloqueados para acesso ao MSN:";
      echo "=======================================";
      echo "";
      cat -n $dirusuarios"users_bloqueio_MSN" | more;
      echo "";
   ;;
   0 ) echo "Operacao Cancelada";
   ;;
   * ) echo "Opcao Invalida!";
   ;;
    esac;
    echo "";
    read -p "Pressione Enter para voltar ao Menu Principal...";
   ;;
   0 ) echo "Encerrando o script..." 
    sleep 2;
    exit;
   ;;
esac;
done

Scripts recomendados

Levantamento de hardware e software no Mandriva 2006

Editor de configurações para Tint2

Envio de SMS via Nagios

slacklibre - Seu Slackware 100% Livre

Retra de iptables para DMZ na porta 80


  

Comentários
[1] Comentário enviado por foxbit3r em 29/06/2011 - 12:19h

Muito bom e se uma hora o ip 200.241.52.1 mudar?
Acho que vc poderia utilizar o logrotate no seu script.

[2] Comentário enviado por jhonsl em 29/06/2011 - 12:41h

Ok. Obrigado pela sugestão.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts