Criação de usuario / gerando senha automatica
Publicado por Pablo Alessandro 01/11/2005
[ Hits: 9.945 ]
Esta com problemas para criar usuarios no postfix (usuario local, não estou utilizando banco de dados), resolvi escrever o script para facilitar minha vida.
#!/bin/bash
#
#####################################################
#
# SCRIPT DESENVOLVIDO PARA CRIAÇÃO DE USUARIO
# COM NOME E SOBRENOME E COM GERACAO DE SENHA
# AUTOMATICA
#
# AUTOR: PABLO ALESSANDRO PEREIRA
# E-MAIL: pabloalessandro@ig.com.br
# DATA: 20/06/2005
#
####################################################
CONT=0
CONT1=0
if test $UID = 0; then
dialog \
--title "Apresentação"\
--backtitle "Criação de usuários webmail." \
--msgbox "Script desenvolvido para facilitar a criação de usuários do servidor de webmail 20/06/2005" 0 0
while [ ${CONT} -eq 0 ]; do
CONT=0
CONT1=0
RESULTADO=`dialog --stdout --menu "Selecione ação desejada:" 0 40 5 \
1 "Criar usuário" \
2 "Excluir usuário" \
3 "Editar senha" \
4 "Sair"`
dialog --infobox "Opcao: $RESULTADO" 0 0
if [ ${RESULTADO} = 1 ]; then
while [ ${CONT1} -eq 0 ]; do
# Recebe o nome do usuario
NOME=`dialog --title "Criação de usuário" --stdout --inputbox "Nome do usuario:" 0 0`
if [ $? = 1 ]; then
CONT1=1
continue
elif [ ${NOME} = ]; then
dialog --title "Criação de usuário" --msgbox "Informe o nome do usuário" 8 40
continue
fi
# Recebe o sobrenome do usuario
SOBRENOME=`dialog --title "Criação de usuário" --stdout --inputbox "Sobrenome do usuario:" 0 0`
if [ $? = 1 ]; then
CONT1=1
continue
elif [ ${SOBRENOME} = ]; then
dialog --title "Criação de usuário" --msgbox "Informe o Sobrenome do usuário" 0 0
continue
fi
USUARIO="${NOME}.${SOBRENOME}"
# Verifica se o usuario existe
grep "^$pabloalessandro:" /etc/passwd > /dev/null
id $pabloalessandro
if [ $? -eq 0 ]; then
dialog --title "Criação de usuário" --msgbox "Usuário \" $pabloalessandro \" já existe, altere o nome e/ou sobrenome !!!" 8 40
continue
else
# Cria o usuario no sistema com o bash falso
useradd -s /bin/false $pabloalessandro
SENHA=$(mkpasswd -l 4 -d 3 -C 0 -c 1 -s 0 $pabloalessandro)
dialog --title "Criação de usuário" --msgbox "Senha: ${SENHA}" 0 0
fi
# Verifica se deseja continuar no insersão de usuario
dialog --title "Criação de usuário" --yesno "Deseja cadastrar outro usuário?" 0 0
if [ $? = 0 ]; then
continue
else
CONT1=1
fi
done
# Excluir usuário
elif [ ${RESULTADO} = 2 ]; then
while [ ${CONT1} -eq 0 ]; do
# Recebe o nome do usuario
NOME=`dialog --title "Exclusão de usuário" --stdout --inputbox "Nome do usuario:" 0 0`
if [ $? = 1 ]; then
CONT1=1
continue
elif [ ${NOME} = ]; then
dialog --title "Exclusão de usuário" --msgbox "Informe o nome do usuário" 8 40
continue
fi
# Recebe o sobrenome do usuario
SOBRENOME=`dialog --title "Exclusão de usuário" --stdout --inputbox "Sobrenome do usuario:" 0 0`
if [ $? = 1 ]; then
CONT1=1
continue
elif [ ${SOBRENOME} = ]; then
dialog --title "Exclusão de usuário" --msgbox "Informe o Sobrenome do usuário" 0 0
continue
fi
USUARIO="${NOME}.${SOBRENOME}"
# Verifica se o usuario existe
grep "^$pabloalessandro:" /etc/passwd > /dev/null
id $pabloalessandro
if [ $? -eq 1 ]; then
dialog --title "Exclusão de usuário" --msgbox "Usuário \" $pabloalessandro \" não existe, verifique os dados informados e tente novamente" 8 40
continue
fi
dialog --title "Exclusão de usuário" --yesno "Deseja excluir o diretorio do usuário?" 0 0
if [ $? = 0 ]; then
userdel $pabloalessandro -rf
dialog --title "Exclusão de usuário" --msgbox "Usuário \" $pabloalessandro \" e diretório excluido com sucesso." 0 0
else
userdel $pabloalessandro
dialog --title "Exclusão de usuário" --msgbox "Usuário \" $pabloalessandro \" excluido com sucesso." 0 0
fi
# Verifica se deseja continuar no insersão de usuario
dialog --title "Exclusão de usuário" --yesno "Deseja excluir outro usuário?" 0 0
if [ $? = 0 ]; then
continue
else
CONT1=1
fi
done
elif [ ${RESULTADO} = 3 ]; then
while [ ${CONT1} -eq 0 ]; do
# Recebe o nome do usuario
NOME=`dialog --title "Alteração de senha" --stdout --inputbox "Nome do usuario:" 0 0`
if [ $? = 1 ]; then
CONT1=1
continue
elif [ ${NOME} = ]; then
dialog --title "Alteração de senha" --msgbox "Informe o nome do usuário" 8 40
continue
fi
# Recebe o sobrenome do usuario
SOBRENOME=`dialog --title "Alteração de senha" --stdout --inputbox "Sobrenome do usuario:" 0 0`
if [ $? = 1 ]; then
CONT1=1
continue
elif [ ${SOBRENOME} = ]; then
dialog --title "Alteração de senha" --msgbox "Informe o Sobrenome do usuário" 0 0
continue
fi
USUARIO="${NOME}.${SOBRENOME}"
# Verifica se o usuario existe
grep "^$pabloalessandro:" /etc/passwd > /dev/null
id $pabloalessandro
if [ $? -eq 1 ]; then
dialog --title "Alteração de senha" --msgbox "Usuário \" $pabloalessandro \" não existe, verifique os dados informados e tente novamente" 8 40
continue
else
SENHA=$(mkpasswd -l 4 -d 3 -C 0 -c 1 -s 0 $pabloalessandro)
dialog --title "Alteração de senha" --msgbox "Senha: ${SENHA}" 0 0
fi
# Verifica se deseja continuar no insersão de usuario
dialog --title "Alteração de senha" --yesno "Deseja alterar outra senha?" 0 0
if [ $? = 0 ]; then
continue
else
CONT1=1
fi
done
elif [ ${RESULTADO} = 4 ]; then
clear
exit 0
else
clear
exit 0
fi
done
else
dialog --infobox "Para executar o programa é preciso ter direito de administrador(root)." 0 0
fi
Trocando plano de fundo no flux de forma gráfica
Criando Autoridades Certificadoras e Certificados de Testes no Linux
Instalar última versão do Java automaticamente em "todas as plataformas"
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Programa fora de escala na tela do pc (11)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)









