Administração servidor WEB com Dialog
Publicado por Anonymous Misteryous 10/04/2008
[ Hits: 7.041 ]
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
Instalando BeEF Framework no Ubuntu
Script de Backup que compacta Segmentado.
Script de Backup para FITA DAT usando "afio"
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Não consigo acessar os modos de desempenho (2)
Ubuntu — tentando iniciar o windows? (0)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba