Administrar squid com autenticação, simples e objetivo.
Publicado por gelber de arruda junior 22/05/2009
[ Hits: 8.599 ]
Homepage: http://gelberarrudajr.blogspot.com
Este script nos ajudará de forma bem simples e objetiva a fazer as tarefas mais comuns como adicionar/excluir usuário, definir a senha do usuário, adicionar e remover sites proibidos, permitidos e sites para o horário de almoço.
Para mais informações sobre o script e para tirar o máximo de proveito dele, acesse http://gelberarrudajr.blogspot.com/2009/05/artigo-squid-com-autenticacao-manual.html
Espero ajudar!!!
#!/bin/bash # Autor: Gelber de Arruda Junior juniorwinfor@yahoo.com.br # Data: 15/05/2009 # Função do Script: Administrar squid com autenticação # # 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. Usuariosliberados=/etc/squid/usuariosliberados Usuarioslimitados=/etc/squid/usuarioslimitados Usuariosexcecao=/etc/squid/usuariosexcecao Sitesperm=/etc/squid/sitespermitidos Sitespro=/etc/squid/sitesproibidos Sitesupdates=/etc/squid/updates Siteshappy=/etc/squid/almoco Arqusu=/etc/squid/cadusuarios Arqsenhas=/etc/squid/autenticacao Listusu="$Arqusu" TMPFILE1=/tmp/tmp1 TMPFILE2=/tmp/tmp2 TMPFILE3=/tmp/tmp3 TMPFILE4=/tmp/tmp4 Squidmenu() { while : ; do resposta= resposta=$( dialog --stdout \ --title 'Administração de Navegação' \ --ok-label 'OK' \ --cancel-label 'Voltar' \ --menu 'Opções:' 0 0 0 1 'Exibir Listagem' 2 'Manipular Usuários' 3 'Sites de Updates' 4 'Sites Liberados' \ 5 'Sites Bloqueados' 6 'Sites Almoço' 7 'SquidView' 9 'Aplicar' ) [ $? -ne 0 ] && break case "$resposta" in 1) Mostrarlistagem ;; 2) titulo="Usuários" listusu=$Arqusu Manipusu ;; 3) titulo=Sites_de_Updates listsite=$Sitesupdates Manipsites ;; 4) titulo="Sites_Permitidos" listsite=$Sitesperm Manipsites ;; 5) titulo="Sites_Bloqueados" listsite=$Sitespro Manipsites ;; 6) titulo="Sites_Almoço" listsite=$Siteshappy Manipsites ;; 7) squidview ;; 9) Aplicalist ;; 0) break ;; esac done } Manipusu() { while : ; do [ -s "$listusu" ] || echo "usuario|limitado|senha" >> $listusu resposta3=$( \ dialog --stdout \ --title ''$titulo'' \ --ok-label 'Adicionar' \ --extra-button \ --extra-label 'Editar' \ --cancel-label 'Voltar' \ --menu '' 0 60 0 \ $(for lnusu in `cat $listusu`; do nmusu=`echo $lnusu | awk -F "|" '{print $1}'` catusu=`echo $lnusu | awk -F "|" '{print $2}'` echo "$nmusu $catusu" done)) bt="$?" case "$bt" in 0) usuadicionando=$( dialog --stdout \ --title 'Adicionar Usuários' \ --ok-label 'Adicionar' \ --cancel-label 'Cancelar' \ --inputbox 'Digite o novo usuário a ser adicionado:' \ 0 0 ) if [ -z "$usuadicionando" ]; then sleep 0 else senhaadicionando=$( dialog --stdout \ --title 'Senha:' \ --ok-label 'OK' \ --cancel-label 'Cancelar' \ --inputbox 'Digite uma senha para o novo usuário:' \ 0 0 ) if [ -z "$senhaadicionando" ]; then sleep 0 else echo "$usuadicionando|Limitado|$senhaadicionando" >> $listusu fi fi ;; 1) break ;; 3) resposta2= resposta2=$( dialog --stdout \ --title 'Editar Usuário' \ --ok-label 'OK' \ --cancel-label 'Voltar' \ --menu 'Selecione uma opção para o Usuário '$resposta3'' 0 0 0 1 'Definir Senha' 2 'Definir Categoria' \ 3 'Excluir' ) if [ $? -ne 0 ]; then sleep 0 else case "$resposta2" in 1) senhaeditando=$( dialog --stdout \ --title 'Senha:' \ --ok-label 'OK' \ --cancel-label 'Cancelar' \ --inputbox 'Digite uma senha para o usuário '$resposta3':' \ 0 0 "$senhausu" ) if [ -z "$senhaeditando" ]; then sleep 0 else [ -e $TMPFILE1 ] && rm $TMPFILE1 for lnusu in `cat $listusu`; do nmusu=`echo $lnusu | awk -F "|" '{print $1}'` catusu=`echo $lnusu | awk -F "|" '{print $2}'` senhausu=`echo $lnusu | awk -F "|" '{print $3}'` if [ "$nmusu" = "$resposta3" ]; then echo "$nmusu|$catusu|$senhaeditando" >> $TMPFILE1 else echo $lnusu >> $TMPFILE1 fi done senhausu= mv $TMPFILE1 $listusu fi ;; 2) Defcategusu ;; 3) [ -e $TMPFILE4 ] && rm $TMPFILE4 dialog \ --title 'Confirma exclusão?' \ --yesno "Tem certeza que deseja excluir o usuário "$resposta3"? " 0 0 if [ "$?" -ne 0 ]; then sleep 0 else egrep -v "$resposta3" $Arqusu > $TMPFILE4 mv $TMPFILE4 $Arqusu fi ;; esac fi ;; esac done } Mostrarlistagem() { echo " Usuário | Categoria | Senha |" > $TMPFILE3 echo " | | |" >> $TMPFILE3 for cli in `cat $Arqusu`; do echo $cli | awk -F "|" '{printf"%15s | %13s | %14s |\n" ,$1,$2,$3}' >> $TMPFILE3 done echo "" >> $TMPFILE3 dialog \ --title 'Listagem de Usuários' \ --textbox $TMPFILE3 \ 0 0 } Defcategusu() { [ -s "$listusu" ] || echo "usuario|senha" >> $listusu resposta4= resposta4=$( dialog --stdout \ --title 'Categoria de Usuário' \ --ok-label 'OK' \ --cancel-label 'Sair' \ --menu 'Selecione uma categoria para o usuário '$resposta3'' 0 0 0 1 'Limitado' \ 2 'Exceção' 3 'Liberado' ) [ $? -ne 0 ] && break [ -e $TMPFILE2 ] && rm $TMPFILE2 for lnusucad in `cat $Arqusu`; do senhausu=`echo "$lnusucad" | awk -F "|" '{print $3}'` catcli=`echo "$lnusucad" | awk -F "|" '{print $2}'` clinome=`echo "$lnusucad" | awk -F "|" '{print $1}'` if [ "$clinome" = "$resposta3" ]; then [ "$resposta4" = "1" ] && echo "$clinome|Limitado|$senhausu" >> $TMPFILE2 [ "$resposta4" = "2" ] && echo "$clinome|Exceção|$senhausu" >> $TMPFILE2 [ "$resposta4" = "3" ] && echo "$clinome|Liberado|$senhausu" >> $TMPFILE2 else echo "$lnusucad" >> $TMPFILE2 fi done mv $TMPFILE2 $Arqusu } Aplicalist() { echo "NenhumNomePodeSerCompatívelcomEssaLinha93453489347" > $Usuariosliberados echo "NenhumNomePodeSerCompatívelcomEssaLinha93453489347" > $Usuarioslimitados echo "NenhumNomePodeSerCompatívelcomEssaLinha93453489347" > $Usuariosexcecao [ -e $Arqsenhas ] && rm $Arqsenhas touch $Arqsenhas for linecli in `cat $Arqusu`; do senhausu=`echo "$linecli" | awk -F "|" '{print $3}'` catcli=`echo "$linecli" | awk -F "|" '{print $2}'` clinome=`echo "$linecli" | awk -F "|" '{print $1}'` [ "$catcli" = "Liberado" ] && echo "$clinome" >> $Usuariosliberados [ "$catcli" = "Limitado" ] && echo "$clinome" >> $Usuarioslimitados [ "$catcli" = "Exceção" ] && echo "$clinome" >> $Usuariosexcecao param= [ -s "$Arqsenhas" ] || param="-c" htpasswd -b $param $Arqsenhas $clinome $senhausu clear done squid -k reconfigure } Manipsites() { [ -s "$listsite" ] || echo "www.sitecadastrado.com" >> $listsite catt= while : ; do resposta3=$( \ dialog --stdout \ --title ''$titulo'' \ --ok-label 'Adicionar' \ --extra-button \ --extra-label 'Remover' \ --cancel-label 'Voltar' \ --menu '' 30 70 27 \ $(for st in `cat $listsite`; do mostrar=`echo $st | awk -F "|" '{print $1}'` catt=`echo $st | awk -F "|" '{print $2}'` [ -z "$catt" ] && catt="-" echo "$mostrar" "$catt" done)) bt="$?" case "$bt" in 0) siteadding=$( dialog --stdout \ --title 'Adicionar Site' \ --ok-label 'Adicionar' \ --cancel-label 'Cancelar' \ --inputbox 'Digite o novo site a ser adicionado:' \ 0 0 ) if [ -z "$siteadding" ]; then sleep 0 else echo $siteadding >> $listsite fi ;; 1) break ;; 3) dialog \ --title 'Confirma exclusão?' \ --yesno "Tem certeza que deseja excluir o site "$resposta3"? " 0 0 if [ "$?" -ne 0 ]; then sleep 0 else egrep -v "$resposta3" $listsite > $TMPFILE4 mv $TMPFILE4 $listsite fi ;; esac done } Squidmenu
Baixando fotos de uma câmera digital pela USB
Administração de VirtualBox com ShellScript
Administração servidor WEB com Dialog
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Erro no upgrade: Sub-process /usr/bin/dpkg returned an error code (1) (2)
Falta pacotes de suporte ao sistema de arquivos (Gerenciador de discos... (6)
A area de trabalho ficou preta (16)
Agora temos uma assistente virtual no fórum!!! (244)
Servidor said: 530 5.7.0 Must issue a STARTTLS command first (in r... (0)