Criação de usuario / gerando senha automatica

Publicado por Pablo Alessandro 01/11/2005

[ Hits: 9.775 ]

Download usermail




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.

  



Esconder código-fonte

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

Scripts recomendados

Instalação do Nagios por script

Agenda desenvolvida em Shell Script

Instalação do Cisco Packettracer 7.2 no Debian 10

Backup com data no nome do arquivo

Instalador de programas


  

Comentários
[1] Comentário enviado por Wesllay em 07/10/2006 - 15:06h

No meu micro deu:
-bash: mkpasswd: command not found



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts