Advertisement
Majorcode

nuser.sh

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