Administrar squid com autenticação, simples e objetivo.
Publicado por gelber de arruda junior 22/05/2009
[ Hits: 8.683 ]
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
Criação de servidores de arquivos simples com Samba
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Aplicativo simples para gravar tela
Quebra de linha na data e hora no Linux Mint
Sempre que vou baixar algum pacote acontece o erro dpkg (8)
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (8)
Problema com Conexão Outlook via Firewall (OpenSUSE) com Internet Fibr... (5)