Administração servidor WEB com Dialog
Publicado por Anonymous Misteryous 10/04/2008
[ Hits: 7.240 ]
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
Kernel 4.0 para Ubuntu, Linux Mint, Lubuntu e derivados
Script para gravar DVD, gera imagem e grava na mídia
Firewall para Compartilhamento de Conexão 3G
procurar palavras dentro de todos os ficheiros de sub directorias
Apagando 2 linhas do fim de um arquivo
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Remoção de propaganda com o programa Comskip[AJUDA] (5)
Linux Lite Demorando Muito Para Ligar (2)
Instalação do drive do adaptador wiffi (5)