Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ## ##
- # Script para adicionar um usuário no sistema. #
- ## ##
- # Definindo variáveis
- PROXIMA=PRIMEIRA
- USER=""
- # Definindo funções
- function usando()
- {
- local existe=$USER
- id -u $existe &> /dev/null
- }
- function novo()
- {
- local user=$USER
- local pass=$PASSWORD
- useradd -p $pass $user &> /dev/null
- }
- # Verificando se o usuário possui privilégios de root
- if [ ! $UID -eq 0 ]
- then
- dialog --title 'Erro' --backtitle 'Controle de Contas.' --infobox 'Você não tem poderes de root. Saindo...' 0 0
- sleep 3
- exit 1
- fi
- # enquanto o laço não for quebrado propositalmente
- # o laço de dentro continuará sendo executado
- while :
- do
- # Loop principal. Em cada tela são definidas as variáveis 'ANTERIOR' e
- # 'PROXIMA' que definem os rumos da navegação;
- #
- # O tratamento de Return Codes de todas as telas agora estão sendo feitos
- # dentro do case;
- #
- # Caso o usuário pressione CANCELAR, será retornado para a tela anterior,
- # caso pressione ESC, o programa será encerrado.
- while :
- do
- case $PROXIMA in
- PRIMEIRA)
- PROXIMA=USE
- dialog --title 'Bem-vindo' --backtitle 'Controle de Contas.' --msgbox 'Bem-vindo ao Controle de Contas de Usuário.' 10 20
- RETURN=$?
- [ $RETURN -eq 255 ] && exit 1
- ;;
- USE)
- ANTERIOR=PRIMEIRA
- PROXIMA=PASSWORD
- USER=$(dialog --stdout --title 'Usuário' --backtitle 'Controle de Contas.' --inputbox 'Digite o seu nome:' 0 0)
- RETURN=$?
- [ $RETURN -eq 1 ] && PROXIMA=$ANTERIOR && continue
- [ $RETURN -eq 255 ] && exit 1
- if [ -z $USER ]
- then
- dialog --msgbox 'Informe um nome de usuário.' 0 0
- PROXIMA=USE
- continue
- fi
- if usando $USER
- then
- dialog --title 'Erro!' --backtitle 'Controle de Contas.' --msgbox "O Usuário $USER já existe no sistema." 0 0
- PROXIMA=USE
- continue
- fi
- ;;
- PASSWORD)
- ANTERIOR=USE
- PROXIMA=""
- PASSWORD=$(dialog --stdout --title 'Senha' --backtitle 'Controle de Contas.' --passwordbox 'Digite sua senha:' 0 0)
- RETURN=$?
- [ $RETURN -eq 1 ] && PROXIMA=$ANTERIOR && continue
- [ $RETURN -eq 255 ] && exit 1
- if [ -z $PASSWORD ]
- then
- dialog --msgbox 'Informe uma senha.' 0 0
- PROXIMA=PASSWORD
- continue
- fi
- ;;
- esac
- if novo $USER $PASSWORD
- then
- dialog --title 'Sucesso!' --backtitle 'Controle de Contas.' --msgbox "O Usuário $USER foi adicionado com sucesso." 0 0
- exit 0
- fi
- done
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement