Administração servidor WEB com Dialog
Publicado por Anonymous Misteryous 10/04/2008
[ Hits: 7.189 ]
Construí esse script para o pessoal que administra o servidor web com php e banco de dados instalado. Essa é a idéia principal, para os amantes do shellscript assim como eu ainda requer algumas implementações.
Rodo nas versões 2 e atualmente na 3.1.17(2)-release do BASH. Provavelmente não funcionará na 3.1.17(1)-release (esta versão não gosta dos "()" das funções e outras coisas mais).
Obrigadaço moçada, abraço a todos!
#!/bin/sh trap '' 2 function Principal () { abertura=$(dialog --stdout --backtitle "UNIVERSIDADE FEDERAL DE MATO GROSSO POP-RNP/MT" \ --title "Escolha as opcoes:" \ --menu "\n Danyllo Carvalho\n\n" \ 0 0 0 1 'ADICIONAR USUARIO FTP' 2 'MODIFICAR SENHA DE USUARIO FTP' 3 'LISTAR USUARIOS FTP' 4 'CRIAR USUARIOS NO BANCO DE DADOS' 5 'DELETAR USUARIO E BANCO DE DADOS' 6 'MUDA SENHA DE USUARIOS NO BANCO' 7 'SAIR') # [ $? -ne 0 ] && Principal # tecla Esc # [ $? -eq 1 ] && exit if [ "$?" -eq 1 ]; then exit fi if [ "$abertura" == '1' ]; then Criar fi if [ "$abertura" == '2' ]; then Mudar fi if [ "$abertura" == '3' ]; then Listar fi if [ "$abertura" == '4' ]; then Criarbd fi if [ "$abertura" == '5' ]; then DeletaBD fi if [ "$abertura" == '6' ]; then Mudarbd fi if [ "$abertura" == '7' ]; then Sair fi } function Criar () { clear pasta=$(dialog --stdout --inputbox "Digite o nome da pasta: " 0 0) [ $? -eq 1 ] && Principal var2=$(cat /etc/passwd |awk -F ":" '{print $1}' |grep -w "$pasta") if [ "$var2" ] then dialog --stdout --msgbox "A pasta $pasta existe! Tente novamente com outro nome." 0 0 Principal fi if [ "$pasta" == "" ]; then dialog --stdout --msgbox "A pasta nao pode ser vazia!! Tente novamente." 0 0 Principal else usuario fi usuario=$(dialog --stdout --inputbox "Digite o nome de Login do usuario FTP :" 0 0) [ $? -eq 1 ] && Principal if [ "$usuario" == "" ]; then dialog --stdout --msgbox "O login nao pode ser vazio!! Tente Novamente." 0 0 Principal fi var=$(grep -w $usuario /etc/shadow |awk -F ":" '{print $1}') if [ $var ] then dialog --stdout --msgbox "O login $usuario existe! Tente novamente com outro nome " 0 0 Principal else execucao fi } function execucao () { mkdir /var/www/htdocs/$pasta chmod 771 /var/www/htdocs/$pasta useradd -d /var/www/htdocs/$pasta -s /bin/bash $usuario /usr/bin/passwd $usuario chown $usuario.users /var/www/htdocs/$pasta sleep 5 dialog --stdout --msgbox "Usuario ftp criado com sucesso! " 0 0 Principal } function Mudar () { m_usuario=$(dialog --stdout --inputbox 'Digite o nome do usuario: ' 0 0) [ $? -eq 1 ] && Principal if [ "$m_usuario" == "" ]; then dialog --stdout --msgbox "O login nao pode ser vazio!! Tente Novamente." 0 0 Principal fi passwd $m_usuario unset $m_usuario sleep 3 dialog --stdout --msgbox "A senha foi Atualizada com Exito!" 0 0 Principal } function Listar () { meu=$(awk -F \: '$3 >= 1000{print $1 $6}' /etc/passwd |sed 's#/# /#' |sed 's/$/ OFF/g') opcao=$(dialog --stdout --radiolist ' Usuarios Pastas' 0 0 0 \ $meu) #echo $opcao Principal } function Criarbd () { bd_usuario=$(dialog --stdout --inputbox 'Digite o nome do Login do usuario: ' 0 0) [ $? -eq 1 ] && Principal if [ "$bd_usuario" == "" ]; then dialog --stdout --msgbox "O nome de Login nao pode ser vazio!! Tente Novamente." 0 0 Principal fi xstbd=$(mysql -uroot -plalalala -e "SELECT user from mysql.user where user='$bd_usuario';" |sort -u |grep $bd_usuario) if [ $xstbd ]; then dialog --stdout --msgbox "O login $bd_usuario existe! Tente novamente com outro nome " 0 0 Principal fi passbd_usuario=$(dialog --stdout --inputbox 'Digite a SENHA do usuario: ' 0 0) if [ "$passbd_usuario" == "" ]; then dialog --stdout --msgbox "O campo senha nao pode ser nulo! Tente Novamente." 0 0 Principal fi banco_usuario=$(dialog --stdout --inputbox 'Agora digite o nome do banco do usuario: ' 0 0) if [ "$banco_usuario" == "" ]; then dialog --stdout --msgbox "O nome do Banco nao pode ser vazio!! Tente Novamente." 0 0 Principal fi procura_banco=$(mysql -uroot -plalalala -e "show databases" |sort -u |grep -w $banco_usuario) if [ $procura_banco ]; then dialog --stdout --msgbox "O banco $banco_usuario Ja existe em nosas base de Dados, tente outro nome!" 0 0 banco_usuario fi dialog \ --title 'Sistema' \ --yesno '\nDeseja visualizar as informacoes Inseridas ? Caso a resposta seja NAO, o sistema nao considerara erros! É altamente recomendável que respondas SIM. \n\n' \ 0 0 test "$?" -eq 0 && info || Executabd } function info () { echo "Login do Banco: $bd_usuario" >/tmp/louro echo "Nome do banco de Dados: $banco_usuario" >>/tmp/louro echo "Senha do banco: $passbd_usuario" >>/tmp/louro dialog --title 'Visualizando Arquivo' --textbox /tmp/louro 0 0 dialog \ --title 'Sistema' \ --yesno '\nDeseja Realmente criar este usuario com essas informacoes no Banco? \n\n' \ 0 0 test "$?" -eq 0 && Executabd || Principal rm /tmp/louro } function DeletaBD() { banco=$(mysql -uroot -plalalala -e "show databases" |sort -u |sed 's/$/ usuario OFF/g') opcao=$(dialog --stdout --radiolist ' Banco Permissao' 0 0 0 $banco) [ $? -eq 1 ] && Principal dialog \ --title 'Sistema' \ --yesno "\nDeseja realmente deletar esse BANCO e este USUARIO ? Sera deletado somente o banco de dados $opcao e o usuario que eh dono dele. \n\n" \ 0 0 test "$?" -eq 0 && ExecDeletaBD || Principal if [ "$opcao" == "" ]; then dialog --title '!!! ERRO !!!' --msgbox "É preciso selecionar alguma opcao! Note que eh preciso marcar com X na selecao do banco!" 0 0 Principal fi } function ExecDeletaBD () { if [ "$opcao" == "" ]; then dialog --title '!!! ERRO !!!' --msgbox "É preciso selecionar alguma opcao! Note que eh preciso marcar com X na selecao do banco." 0 0 Principal fi dialog --title 'INFO' --msgbox "Esta opcao ainda nao esta habilitada no sistema, portanto, nao sera possivel deletar usuarios! POR FAVOR CONTATE O ADMINISTRADOR DO SISTEMA." 0 0 sleep 1 Principal } function Executabd () { rm /tmp/louro mysql -uroot -plalalala -e "create database $banco_usuario;" mysql -uroot -plalalala -e "GRANT usage ON *.* TO $bd_usuario@localhost IDENTIFIED BY '$passbd_usuario';" mysql -uroot -plalalala -e "GRANT usage ON *.* TO $bd_usuario@'%' IDENTIFIED BY '$passbd_usuario';" mysql -uroot -plalalala -e "GRANT CREATE, DROP, SELECT, INSERT, UPDATE, DELETE ON $banco_usuario.* TO $bd_usuario@'%';" mysql -uroot -plalalala -e "flush privileges;" unset $banco_usuario unset $bd_usuario unset $passbd_usuario dialog --stdout --msgbox "Banco de Dados criado com sucesso!!" 0 0 sleep 3 Principal } function Mudarbd () { procura_banco=$(mysql -uroot -plalalala -e "show databases" |sort -u |sed 's/$/ usuario OFF/g') opcao=$(dialog --stdout --radiolist ' Banco Permissao' 0 0 0 \ $procura_banco) [ $? -eq 1 ] && Principal muda_banco=$(dialog --stdout --inputbox 'Agora digite o nome da nova senha: ' 0 0) [ $? -eq 1 ] && Principal if [ "$muda_banco" == "" ]; then dialog --msgbox "É preciso inserir uma nova senha!" 0 0 Principal fi mysql -uroot -plalalala -e "SET PASSWORD FOR '$opcao'@'%' = PASSWORD('$muda_banco');" mysql -uroot -plalalala -e "SET PASSWORD FOR '$opcao'@'localhost' = PASSWORD('$muda_banco');" sleep 2 dialog --stdout --msgbox "Atualizacao de senha efetivada com sucesso!" 0 0 sleep 3 Principal } Sair() { dialog \ --title 'LOGOUT' \ --yesno '\nDeseja realmente sair? \n\n' \ 0 0 test "$?" -eq 0 && exit || Principal } Principal
Baixando e instalando o Asterisk
Instalando e Integrando o SWATCH com SNORT
Script para encontrar arquivos .wam, .mpeg
Nenhum comentário foi encontrado.
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
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta