Gerenciar usuários com dialog
Publicado por Daniel Miyagi (última atualização em 20/10/2009)
[ Hits: 12.992 ]
Menu de adicionar, remover e listar usuários com dialog.
Esse script faz um menu para adicionar, remover e listar usuários totalmente interativo. Para esse script funcionar o pacote "dialog" deve estar instalado.
Não está completo ainda, mas não pretendo terminá-lo pois ele não tem taaannnta utilidade assim. Ele pode ser ajustado e pode ter uma utilidade maior. O importante aqui é conhecer a ferramenta mesmo e futuramente adaptar às suas necessidades.
Espero que seja útil para alguém. Faloww!
#!/bin/bash
while true
do
# 10=tamanho 30=tamanho 3=quantidade de opcoes
OPCFILE="/tmp/.opcmenu"
NOMEUS="/tmp/.nomeus"
SENHA1="/tmp/.senha1"
SENHA2="/tmp/.senha2"
FDELUSER="/tmp/.deluser"
cat /etc/passwd | cut -d: -f1 | nl > /tmp/.usuario_lista
dialog --menu "Escolha uma opção abaixo" 10 30 3 \
"1" "Adicionar usuario" \
"2" "remover usuarios" \
"3" "listar usuarios" 2> $OPCFILE
#O direcionamento do dialog padrao é o 2>!!
case $? in
1)
break ;;
255)
break ;;
esac
listar (){
dialog --textbox /tmp/.usuario_lista 0 0
}
adicionar (){
dialog --inputbox "Digite o nome do novo usuário" 7 40 2> $NOMEUS
USERNAME=`cat $NOMEUS`
dialog --passwordbox "Digite a senha" 0 0 2> $SENHA1
dialog --passwordbox "Digite sua senha novamente" 0 0 2> $SENHA2
PASSWORD=$(cat $SENHA1)
if [ "$(cat $SENHA1)" = "$(cat $SENHA2)" ] ; then
dialog --yesno "confirma a criação do usuario $USERNAME ?" 7 45
case $? in
0)
useradd -m -d /home/$USERNAME -s /bin/bash $USERNAME
#passwd $USERNAME --> esse comando abaixo substitiu o comando passwd e faz com que o script fique 100% dentro do dialog. Não mostra a mensagem para adicionar novamente a senha do usuario criado.!!
echo "$USERNAME:$PASSWORD" | chpasswd
dialog --msgbox "Usuario criado com sucesso !!" 7 50 ;;
esac
else
dialog --msgbox "As senhas não conferem !!" 7 30
fi
}
remover (){
dialog --inputbox " Digite o nome do usuario a ser excluido" 7 50 2> $FDELUSER
DELUSER=$(cat $FDELUSER)
deluser $DELUSER
case $? in
0)
dialog --msgbox "O usuario foi excluido com sucesso! " 5 40 ;;
*)
dialog --msgbox "Nome do usuario incorreto ou inexistente " 5 30 ;;
esac
}
case $(cat $OPCFILE) in
1)
adicionar;;
2)
remover;;
3)
listar;;
esac
done
rm -f /tmp/.usuario_lista
rm -f "$OPCFILE"
rm -f "$NOMEUS"
rm -f "$SENHA1"
rm -f "$SENHA2"
rm -f "$FDELUSER"
mPlayRecTv - assista e grave a programação da TV com MPlayer
Instalar última versão do Java automaticamente em "todas as plataformas"
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









