Administrar squid com autenticação, simples e objetivo.
Publicado por gelber de arruda junior 22/05/2009
[ Hits: 8.622 ]
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
Fluxbox - Slideshow de wallpapers aleatórios
Criando vários usuários no LDAP a partir de um arquivo
SCRIPT PARA AUTOMAÇÃO DE ATUALIZAÇÃO EM AMBIENTE DEBIAN OU DERIVADOS.
Kernel 4.0 para Ubuntu, Linux Mint, Lubuntu e derivados
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Programa duplicado no "Abrir com" e na barra de pesquisa do ... (1)
VMs e Interfaces de Rede desapareceram (13)
Como abrir o pycharm no linux [RESOLVIDO] (4)