Imspector - Manipular ACLS facilmente
Publicado por gelber de arruda junior 17/05/2009
[ Hits: 9.070 ]
Homepage: http://gelberarrudajr.blogspot.com
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!!!
#!/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
Invertendo strings usando vetores
NFS server/client com iptables
Script para Ler código de barras serial e jogar no buffer do teclado
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Quando vocês pararam de testar distros? (12)
Problema com som no laptop (3)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









