Gerenciar usuários com dialog

Publicado por Daniel Miyagi (última atualização em 20/10/2009)

[ Hits: 12.613 ]

Download dialog.txt




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!

  



Esconder código-fonte

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

Scripts recomendados

Barra de progresso em shell script com cores roxa e verde

Script para gravar DVD

Backup para um FTP

Instalar última versão do Java automaticamente em "todas as plataformas"

Init Service for Slackware


  

Comentários
[1] Comentário enviado por dimago em 31/10/2010 - 12:26h

Opaa, achei bem legal esse script, porem ele nao trata se o usuario jah existe...
fiz este ajuste, basta colocar esta função no lugar da adicionar, vejam:

adicionar (){
dialog --inputbox "Digite o login do novo usuário" 7 40 2> $NOMEUS
USERNAME=`cat $NOMEUS`
if grep $USERNAME /etc/passwd ; then
dialog --msgbox "Usuário $USERNAME já existe" 7 45
else
dialog --passwordbox "Digite a senha" 0 0 2> $SENHA1
dialog --passwordbox "Repita a senha" 0 0 2> $SENHA2

PASSWORD=$(cat $SENHA1)
if [ "$(cat $SENHA1)" = "$(cat $SENHA2)" ] ; then
dialog --yesno "Confirma a criação do Usuário $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 Usuário criado.!!
echo "$USERNAME:$PASSWORD" | chpasswd
dialog --msgbox "Usuário criado com sucesso !!" 7 50 ;;
esac
else
dialog --msgbox "As senhas não conferem !!" 7 30
fi
fi
}

eh isso ai..

abs

diego


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts