Imspector - Manipular ACLS facilmente

Publicado por gelber de arruda junior 17/05/2009

[ Hits: 8.742 ]

Homepage: http://gelberarrudajr.blogspot.com

Download imadmin.sh




Esse script ajuda o administrador a controlar o msn em sua rede facilmente sem precisar ficar editando os arquivos de configuração.

O script gera o arquivo padrão de acls do IMSPECTOR a partir do dialog. Mais detalhes sobre sua utilização em http://gelberarrudajr.blogspot.com/2009/05/neste-artigo-nos-vamos-aprender.html.

Bom proveito!!!

  



Esconder código-fonte

#!/bin/bash
# Autor: Gelber de Arruda Junior juniorwinfor@yahoo.com.br
# Data: 15/05/2009
# Função do Script: Manipular Live IDS facilmente para acl's do imspector 0.8
#
# http://gelberarrudajr.blogspot.com/2009/05/neste-artigo-nos-vamos-aprender.html
#
# ATENÇÃO: instalar o dialog e psmisc( apt-get install dialog psmisc)
#
# Este programa é um software livre que pode ser copiado e distribuído
# nos termos da Licença Pública Geral GNU (GNU General Public License -
# GPL) versão 2 da licença ou, a seu critério, qualquer versão posterior.
# Este programa foi criado na expectativa de ser útil, porém NÃO POSSUI
# NENHUMA GARANTIA, EXPRESSA, IMPLÍCITA OU DE ATENDIMENTO A ALGUMA
# DETERMINADA FINALIDADE.

TMPFILE1=/tmp/tmpf1
TMPFILE4=/tmp/tmpf4
lvd=/usr/etc/imspector/liveids
lvdex=/usr/etc/imspector/liveidsex
acls=/usr/etc/imspector/acl.txt

Msnmenu() {
while : ; do
resposta=
resposta=$( dialog --stdout \
   --title 'Administração Messenger' \
   --ok-label 'OK' \
        --cancel-label 'Voltar' \
   --menu 'Opções:' 0 0 0 1 'Contatos Internos' 2 'Definir Categoria' 3 'Contatos Externos' \
   4 'Aplicar Mudanças' )
[ $? -ne 0 ] && break
  case "$resposta" in
        1) lista="$lvd"
      titulo=Lista_de_Contatos_Internos
   Manipliveids
   ;;
   2) Defcateg
   ;;
   3)  lista="$lvdex"
           titulo=Lista_de_Contatos_Externos
   Manipliveids
      ;;
   4) Criaacltxt
    killall imspector
    imspector &
    ;;
        0) break ;;
    esac
done
}

Manipliveids() {
[ -s "$lista" ] || echo "exemplo@hotmail.com|Aberto" >> $lista
while : ; do
resposta3=
resposta3=$( \
dialog --stdout \
        --title ''$titulo'' \
        --ok-label 'Adicionar' \
        --extra-button  \
        --extra-label 'Remover' \
        --cancel-label 'Voltar' \
        --menu '' 0 60 16 \
$(cont=0
for llvd in `cat $lista`; do
   cont=`expr "$cont" + 1`
   idlvd=`echo "$llvd" | awk -F "|" '{print $1}'`
   [ -z "$idlvd" ] && idlvd=vazio
   echo "$cont" "$idlvd"
   done))
bt="$?"
case "$bt" in
        0) lvdadding=$( dialog --stdout \
                --title 'Adicionar Live ID' \
                --ok-label 'Adicionar' \
                --cancel-label 'Cancelar' \
                --inputbox 'Digite a nova Live ID a ser adicionada:' \
                0 0 )
        if [ -z "$lvdadding" ]; then
                sleep 0
        else
        echo "$lvdadding""|Fechado" >> $lista
        fi
;;
        1) break ;;
        3) dialog \
                --title 'Confirma exclusão?' \
                --yesno "Tem certeza que deseja excluir Live ID de número "$resposta3"?
                " 0 0
        if [ "$?" -ne 0 ]; then
                sleep 0
        else
   cont=0
   [ -e $TMPFILE4 ] && rm $TMPFILE4
   for exllvd in `cat $lista`; do
      cont=`expr "$cont" + 1`
      if [ "$resposta3" -eq "$cont" ]; then
         sleep 0
      else
         echo "$exllvd" >> $TMPFILE4
      fi
   done
        mv $TMPFILE4 $lista
        fi
;;
esac
done
}
Defcateg(){
while : ; do
resposta=
resposta=$( dialog --stdout \
        --title 'Definir categoria dos contatos' \
        --ok-label 'Alterar' \
        --cancel-label 'Voltar' \
        --menu 'Selecione:' 0 0 0 $( 
   for llvd in `cat $lvd`; do
      cadalvd=`echo $llvd | awk -F "|" '{print $1}'`
      catlvd=`echo $llvd | awk -F "|" '{print $2}'`
      echo "$cadalvd $catlvd"
   done ))
   [ $? -ne 0 ] && break
      [ -e $TMPFILE1 ] && rm $TMPFILE1
      while : ; do
         resposta2=
         resposta2=$( dialog --stdout \
              --title 'Categoria para o contato' \
                --ok-label 'OK' \
              --cancel-label 'Voltar' \
              --menu 'Selecione uma categoria para o contato '$resposta'' 0 0 0 1 'Aberto' 2 'Fechado')
         [ $? -ne 0 ] && break
          for llvd in `cat $lvd`; do
                      cadalvd=`echo $llvd | awk -F "|" '{print $1}'`
                      catlvd=`echo $llvd | awk -F "|" '{print $2}'`
            if [ "$cadalvd" = "$resposta" ]; then
               if [ "$resposta2" -eq "1" ]; then
                  echo ""$cadalvd"|Aberto" >> $TMPFILE1
               else
                  echo ""$cadalvd"|Fechado" >> $TMPFILE1
               fi
            else
               echo "$llvd" >> $TMPFILE1
            fi
         done
         mv $TMPFILE1 $lvd
         break
      done
done
}

Criaacltxt(){
dialog --infobox 'Aguarde... Montando ACLs de conversas' 0 0
[ -e $acls ] && rm $acls
touch $acls
chmod 777 $acls
for contatoin in `cat $lvd`; do
   lvdin=`echo $contatoin | awk -F "|" '{print $1}'`
   tplvdin=`echo $contatoin | awk -F "|" '{print $2}'`
        if [ "$tplvdin" = "Fechado" ]; then
      seqcontatoex=
      for contatoex in `cat $lvdex`; do
         idlvdex=`echo $contatoex | awk -F "|" '{print $1}'`
         seqcontatoex="$idlvdex $seqcontatoex"
      done
      echo "allow $lvdin $seqcontatoex" >> $acls
   fi
done
seqcontatoin=
for contatoin in `cat $lvd`; do
        lvdin=`echo $contatoin | awk -F "|" '{print $1}'`
        seqcontatoin="$lvdin $seqcontatoin"
done
echo "allow all $seqcontatoin" >> $acls


for contatosint in `cat $lvd`; do
   lvdint=`echo $contatosint | awk -F "|" '{print $1}'`
   tplvdint=`echo $contatosint | awk -F "|" '{print $2}'`
   if [ "$tplvdint" = "Aberto" ]; then
      echo "allow $lvdint" >> $acls
   fi
done

echo "allow all groupchat" >> $acls
echo "deny all" >> $acls
chmod 777 $acls
chown nobody $acls
}

Msnmenu

Scripts recomendados

Validação de endereços IPv4

Loadbalance FAILOVER V.5

Instalação do Layer7 e compilação do kernel (automático)

Agenda desenvolvida em Shell Script

fcp (ftp copy) - copia um ou mais arquivos via FTP


  

Comentários
[1] Comentário enviado por chaplinux em 26/05/2009 - 18:55h

Valeu!!! foi boa!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts