Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Puppy Linux
Por removido
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Anonymous Misteryous em 10/04/2008    [ 3411 hits ]

Login: nemphilis, 19326 pontos

   


Descrição

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!

[ Download: admin_web_dialog.sh ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

#!/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


Scripts recomendados
   Script Linux recomendado Pequeno sistema de backup (Rsync + SAMBA + Tar + FTP)
   Script Linux recomendado Ping mesmo com firewall
   Script Linux recomendado RSYNC + NFS
   Script Linux recomendado Script q ue cria uma galeria de imagens
   Script Linux recomendado POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - DESBLOQUEAR IP

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.