Gerenciamento de usários do Squid usando Dialog
Publicado por Paulo Oliveira Reis 04/09/2006
[ Hits: 8.521 ]
Este script visa facilitar a administração dos usuários do Squid, permitindo cadastrar, excluir, alterar senha e pesquisar usuário. Tudo isso usando Dialog, para tornar essa tarefa o mais amigável possível, podendo até delegar essa tarefa para funcionários com pouca ou nenhuma experiência em Linux, tamanha interatividade do script. Espero ansiosamente por contribuições, dicas, críticas construtivas.
Abraços a todos e VivaOLinux
#!/bin/bash ######################################################################### # # # Empresa: Hospital Anchieta Ltda # # Homepage: www.hospitalanchieta.com.br # # Autor: Paulo Oliveira Reis Cargo: Tecnico de Apoio ao Usuario # # Data Criacao: 12/06/2006 Ultima Alteracao: 14/06/2006 # # Contato: paulo@hospitalanchieta.com.br # # # # Script para gerencimento de usuarios do proxy squid, usando dialog e # # armazenando alem do login, nome completo e setor separados por : como # # no arquivo passwd gerando: <login>:<senha>:<nome completo>:<setor> que# # facilita a identificacao do usuario e geracao de relatorios # # # ######################################################################### lb_janela="ADMINISTRACAO DO ACESSO A INTERNET" Menu () { txt_opcao=$( dialog --stdout --backtitle "$lb_janela" --title 'CADASTRO INTERNET' --ok-label 'Ok' \ --nocancel --menu 'Escolha a opcao desejada' 0 0 0 Cadastrar 'Criar usuario' Excluir 'Excluir usuario' \ Atualizar 'Trocar senha' Pesquisar 'Pesquisar usuario cadastrado' Sair 'Finalizar' ) case "$txt_opcao" in Cadastrar) CadastrarLogin ;; Excluir) ExcluirLogin ;; Atualizar) TrocarSenha ;; Pesquisar) PesquisaLogin ;; Sair) clear exit ;; esac } CadastrarLogin () { resp=1 while [ $resp -eq 1 ]; do Login if [ -z $txt_login ] || [ $txt_login == "root" ]; then msgInvalido else existelogin=$( cat /etc/squid/regras/passwd |grep -E ^$txt_login\:|awk 'BEGIN{FS=":"}{print $1}' ) if [ $txt_login == $existelogin ]; then dialog --backtitle "$lb_janela" --title 'DUPLICIDADE' --ok-label 'Ok' --nocancel \ --msgbox "Usuario \"$txt_login\" ja cadastrado!" 7 50 else resp=0 fi fi done Nome } ExcluirLogin () { resp=1 while [ $resp -eq 1 ]; do Login existelogin=$( cat /etc/squid/regras/passwd |grep -E ^$txt_login\:|awk 'BEGIN{FS=":"}{print $1}' ) if [ $txt_login == $existelogin ]; then htpasswd -D /etc/squid/regras/passwd $txt_login dialog --backtitle "$lb_janela" --title 'EXCLUSAO' --ok-label 'Concluir' \ --msgbox "Login \"$txt_login\" excluido com sucesso!!" 7 60 resp=0 else msgNaoCadastrado fi done Menu } TrocarSenha () { resp=1 while [ $resp -eq 1 ]; do Login existelogin=$( cat /etc/squid/regras/passwd |grep -E ^$txt_login\:|awk 'BEGIN{FS=":"}{print $1}' ) if [ $txt_login == $existelogin ]; then Senha txt_nome=$( cat /etc/squid/regras/passwd |grep -E ^$txt_login\:|awk 'BEGIN{FS=":"}{print $3}' ) txt_setor=$( cat /etc/squid/regras/passwd |grep -E ^$txt_login\:|awk 'BEGIN{FS=":"}{print $4}' ) dadosemp=$(echo "":"$txt_nome":"$txt_setor") htpasswd -D /etc/squid/regras/passwd $txt_login CriarLogin dialog --backtitle "$lb_janela" --title 'TROCA DE SENHA' --ok-label 'Concluir' \ --msgbox "Troca de senha \"$txt_login\" efetuada com sucesso!!" 7 60 resp=0 else msgNaoCadastrado fi done Menu } PesquisaLogin () { Login if [ -z $txt_login ] || [ $txt_login == "root" ]; then msgInvalido else existelogin=$( cat /etc/squid/regras/passwd |grep -E ^$txt_login\:|awk 'BEGIN{FS=":"}{print $1}' ) if [ $txt_login == $existelogin ]; then txt_nome=$( cat /etc/squid/regras/passwd |grep -E ^$txt_login\:|awk 'BEGIN{FS=":"}{print $3}' ) txt_setor=$( cat /etc/squid/regras/passwd |grep -E ^$txt_login\:|awk 'BEGIN{FS=":"}{print $4}' ) dialog --backtitle "$lb_janela" --title 'PESQUISA USUARIO' --ok-label 'Ok' \ --nocancel --msgbox "Os dados informados foram: \n\nNOME COMPLETO: $txt_nome\nSETOR: $txt_setor\nLOGIN: $txt_login" 10 60 else msgNaoCadastrado fi fi Menu } Nome () { txt_nome=$( dialog --stdout --backtitle "$lb_janela" --title 'NOME' --ok-label 'Proximo' \ --nocancel --inputbox 'NOME COMPLETO:' 7 70 ) txt_nome=$( echo $txt_nome |tr a-z A-Z ) Setor } Setor () { txt_setor=$( dialog --stdout --backtitle "$lb_janela" --title 'SIGLA DO SETOR' --ok-label 'Proximo' \ --nocancel --inputbox 'SETOR:' 7 30 ) txt_setor=$( echo $txt_setor |tr a-z A-Z ) Senha ConfirmaDados } ConfirmaDados () { dialog --backtitle "$lb_janela" --title 'CONFIRMA CADASTRO' --yes-label 'Cadastrar' \ --no-label 'Nao-Cadastrar' --yesno "Os dados informados foram: \n\nNOME COMPLETO: $txt_nome\nSETOR: $txt_setor\nLOGIN: $txt_login" 10 60 if [ $? -eq 0 ]; then dadosemp=$(echo "":"$txt_nome":"$txt_setor") CriarLogin msgCadastrado else Menu fi } CriarLogin () { rm -rf /tmp/*.webpwd arqtmp="pwd$txt_login.webpwd" touch /tmp/$arqtmp htpasswd -b /tmp/$arqtmp $txt_login $txt_senha dadospwd=$( cat /tmp/$arqtmp ) rm -rf /tmp/$arqtmp echo "$dadospwd$dadosemp" >> /etc/squid/regras/passwd } Login () { txt_login=$( dialog --stdout --backtitle "$lb_janela" --title 'LOGIN' --ok-label 'Proximo' \ --nocancel --inputbox 'LOGIN:' 7 30 ) } Senha () { resp=1 while [ $resp -eq 1 ]; do txt_senha=$( dialog --stdout --backtitle "$lb_janela" --title 'DIGITACAO SENHA' --ok-label 'Proximo' \ --nocancel --insecure --passwordbox "DIGITE UMA SENHA:" 7 50 ) if [ -z $txt_senha ]; then dialog --backtitle "$lb_janela" --title 'SENHA INVALIDA' --ok-label 'Ok' --nocancel \ --msgbox "Senha deve ter no minimo 5 caracteres!!" 7 50 else txt_confsenha=$( dialog --stdout --backtitle "$lb_janela" --title 'CONFIRMA SENHA' \ --ok-label 'Proximo' --nocancel --insecure --passwordbox "CONFIRME A SENHA:" 7 50 ) if [ $txt_senha == $txt_confsenha ]; then resp=0 else dialog --backtitle "$lb_janela" --title 'ERRO CONFERENCIA' --ok-label 'Ok' \ --nocancel --msgbox "Senha deve ser igual na digitacao e redigitacao!!" 7 40 fi fi done } msgCadastrado () { dialog --backtitle "$lb_janela" --title 'CONCLUIDO' --ok-label 'Concluir' \ --msgbox "Cadastro do login \"$txt_login\" efetuado com sucesso!!" 7 60 Menu } msgNaoCadastrado () { dialog --backtitle "$lb_janela" --title 'TROCA DE SENHA' --ok-label 'Ok' --nocancel \ --msgbox "Usuario \"$txt_login\" nao cadastrado!!" 7 50 } msgInvalido () { dialog --backtitle "$lb_janela" --title 'USUARIO INVALIDO' --ok-label 'Ok' --nocancel \ --msgbox "Usuario NAO pode ser \"root\" ou \"em branco\"!!" 7 50 } Menu
VMware - Linux HotAdd CPU/Memória
Nenhum comentário foi encontrado.
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Youtube e networkmeneger para de funcionar (5)
Minha rede tem um espaço invisível que não dá pra digitar o nome da re... (1)
Pedagogia no brasil não passa de alfabetização por m4sturbação mental ... (2)
compilação samba 4.22 rock linux 9.5 (3)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (7)