Administração servidor WEB com Dialog
Publicado por Anonymous Misteryous 10/04/2008
[ Hits: 7.206 ]
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
Script FIREWALL IPTABLES com 3 (três) interfaces (Int, Ext e DMZ)
Gravar DVDs no Linux pelo Cron
Backup individual de contas no ZIMBRA MAIL
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Problemas ao instalar o PHP (10)
Descompactar arquivos winrar no linux (9)
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (12)