Criação de usuario / gerando senha automatica

Publicado por Pablo Alessandro 01/11/2005

[ Hits: 9.737 ]

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

Sessão rdesktop

Visual para tcpdump com dialog

Script de firewall

Script para montagem de compartilhamento SAMBA (Gentoo)

FIREWALL COM IPTABLES - PARA EMPRESAS E INTRANETS


  

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