Imspector - Manipular ACLS facilmente
Publicado por gelber de arruda junior 17/05/2009
[ Hits: 9.084 ]
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
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - ATUALIZANDO QUOTA
Detalhes técnicos do processador - CPUINFO
script dapper para debootstrap
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)
Vou destruir sua infância:) (7)
Interface gráfica com problema (0)









