Advertisement
Guest User

Untitled

a guest
Oct 28th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.64 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Variaveis
  4. PROXIMA=PRIMEIRA
  5. USER=""
  6.  
  7. # Funções definidas
  8. function usando()
  9. {
  10.    existe=$USER
  11.    id -u $existe &> /dev/null
  12. }
  13.  
  14. function novo()
  15. {
  16.    local user=$USER
  17.    local pass=$PASSWORD
  18.    useradd -p $pass $user
  19. }
  20.  
  21. # Verificando se o usuário possui privilégios de root
  22. if [ ! $UID -eq 0 ]
  23. then
  24.    dialog --title 'Erro' --backtitle 'Controle de Contas.' --infobox 'Você não tem poderes de root. Saindo...' 0 0
  25.    sleep 3
  26.    exit 1
  27. fi
  28.  
  29. # enquanto o laço não for quebrado propositalmente
  30. # o laco de dentro continuará sendo executado
  31. while :
  32. do
  33.     # Loop principal. Em cada tela são definidas as variáveis 'ANTERIOR' e
  34.     # 'PROXIMA' que definem os rumos da navegação.
  35.     while :
  36.     do
  37.        case $PROXIMA in
  38.             PRIMEIRA)
  39.                PROXIMA=USE
  40.                dialog --title 'Bem-vindo' --backtitle 'Controle de Contas.' --msgbox 'Bem-vindo ao Controle de Contas de Usuário.' 10 20
  41.             ;;
  42.             USE)
  43.                ANTERIOR=PRIMEIRA
  44.                PROXIMA=PASSWORD
  45.                USER=$(dialog --stdout --title 'Usuário' --backtitle 'Controle de Contas.' --inputbox 'Digite o seu nome:' 0 0)
  46.                if [ -z $USER ]
  47.                then
  48.                    dialog --msgbox 'Informe um nome de usuário.' 0 0
  49.                    PROXIMA=USE
  50.                    continue
  51.                fi
  52.             ;;
  53.             PASSWORD)
  54.                ANTERIOR=USE
  55.                PROXIMA=FINAL
  56.                PASSWORD=$(dialog --stdout --title 'Senha' --backtitle 'Controle de Contas.' --passwordbox 'Digite sua senha:' 0 0)
  57.             ;;
  58.             FINAL)
  59.                if usando $USER
  60.                then
  61.                     dialog --title 'Erro!' --backtitle 'Controle de Contas.' --msgbox "O Usuário $USER já existe no sistema." 0 0
  62.                     PROXIMA=$ANTERIOR
  63.                else
  64.                     break
  65.                fi
  66.        esac
  67.      
  68.        # Fazendo o tratamente dos Return Codes de todas as telas:
  69.        # Caso seja CANCELAR=1, volta para a tela anterior
  70.        # Caso seja pressionado ESC, o programa é encerrado
  71.        RETORNO=$?
  72.        if [ $RETORNO -eq 1 ]
  73.        then
  74.             PROXIMA=$ANTERIOR
  75.        fi
  76.      
  77.        if [ $RETORNO -eq 255 ]
  78.        then
  79.             exit 1
  80.        fi
  81.     done
  82.      
  83.    
  84.     if novo $USER $PASSWORD
  85.     then
  86.        dialog --title 'Sucesso!' --backtitle 'Controle de Contas.' --msgbox "O Usuário $USER foi adicionado com sucesso." 0 0
  87.        break
  88.     else
  89.        dialog --title 'Erro!' --backtitle 'Controle de Contas.' --infobox 'Não foi possível adicionar o usuário.' 0 0
  90.     fi
  91.  
  92. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement