Imspector - Manipular ACLS facilmente

Publicado por gelber de arruda junior 17/05/2009

[ Hits: 8.618 ]

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

Avisos de segurança do espaço em uso!

Ajuste Dinâmico do Governador de CPU no Linux

gera saída com substituindo coluna por outra (substr)

Liberação do servidor DNS no firewall

Verifica últimos arquivos criados


  

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