Administração servidor WEB com Dialog
Publicado por Anonymous Misteryous 10/04/2008
[ Hits: 7.276 ]
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
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - RESTAURANDO MBOX VIA SSH
Configurando um Servidor de Nomes no CL10 apenas respondendo algumas perguntas...
Script que envia email para um Relay sem autenticação.
Nenhum comentário foi encontrado.
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
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Jogando com Proton no LInux (0)
Ingress NGINX Controller CVSS base score of 9.8 (4)
Impossível corrigir problemas, você manteve (hold) pacotes quebrados. (2)