POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - CRIANDO USUÁRIOS MYSQL

Publicado por Alessandro Dias 16/05/2005

[ Hits: 4.380 ]

Download create_user_mysql.sh




Cria o(s) usuario(s) que estiverem no banco QUOTA e não estiverem no sistema.

  



Esconder código-fonte

#!/bin/sh
#
###############################################################################
#  Script CRIATE_USER_MYSQL.SH v1.0                                           #
#                                                                             #
#  Autor: Alessandro Dias                                                     #
###############################################################################
#
BASEDIR=/var/mail
ABOOK="/srv/www/default/data"
MAILQUOTA=100
MYDOMAIN="rjo.ccom.eb.mil.br"
ENTRADA="senhas.csv"

clear
echo "*********************************************************************************************"
echo "*                           Programa CRIATE_USER_MYSQL 2.0                                  *"
echo "*********************************************************************************************"
echo "Autor: Alessandro Dias"
echo "Quota Padrão: 100MBytes"
echo "---------------------------------------------------------------------------------------------"
echo "Usuario(s) Criado(s): "

# carrega todos o uauarios do banco
TODOS=$(mysql -u root -ppostfix -e "select usuario from user_quota" quota)
i=2
USERNAME=`echo $TODOS | cut -d " " -f $i`
# verifica se o usuario está no arquivo de senhas
  if [ "$USERNAME" != "" -a "$USERNAME" != " " ]; then
    NOME_TMP=`grep ,$USERNAME,x $ENTRADA | cut -d "," -f 4`   
    NOME=`echo $NOME_TMP | cut -d " " -f 1`
  fi
while [ "$USERNAME" != "" -a "$USERNAME" != " " ]; do
  if [ "$NOME" != "$USERNAME" ]; then # se o usuário não está no arquivo, então cria o uauário
          QUOTA=$(mysql -u root -ppostfix -e "select quota from user_quota where usuario='$USERNAME'" quota)
          QUOTA=`echo $QUOTA |cut -d " " -f 2`
          EMAIL=$(mysql -u root -ppostfix -e "select email from user_quota where usuario='$USERNAME'" quota)
          EMAIL=`echo $EMAIL | cut -d " " -f 2`
          DESCR=$(mysql -u root -ppostfix -e "select descr from user_quota where usuario='$USERNAME'" quota)
          DESCR=`echo $DESCR | cut -d " " -f 2`
          SENHA=$(mysql -u root -ppostfix -e "select senha from user_quota where usuario='$USERNAME'" quota)
          SENHA=`echo $SENHA | cut -d " " -f 2`
          # Atualiza o arquivo de senhas (senhas.csv)
          echo "$EMAIL,$DESCR,$SENHA,$USERNAME,x" >> senhas.csv
          # Cria usuário no Linux
          CRYPT=`openssl passwd $SENHA 2> /dev/null`
          adduser -g 231 -s /bin/false -c "$DESCR" -p $CRYPT $USERNAME
          # Atualiza Permissões
          chmod 755 /home/$USERNAME
          mkdir /home/$USERNAME/mail
          chmod 755 /home/$USERNAME/mail
          chown $USERNAME.popusers /home/$USERNAME/mail
          touch /home/$USERNAME/mail/Enviadas
          touch /home/$USERNAME/mail/Lixeira
          touch /home/$USERNAME/mail/Rascunhos
          chown $USERNAME.popusers /home/$USERNAME/mail/*
          chmod 644 /home/$USERNAME/mail/*
          touch $BASEDIR/$USERNAME
          chmod 660 $BASEDIR/$USERNAME
          chmod 775 $BASEDIR
          chown $USERNAME.mail $BASEDIR/$USERNAME
          # copia o caderno de enderecos
          cp -f $BASEDIR/default_mbox $BASEDIR/$USERNAME
          #cp -f default_abook $ABOOK/$USERNAME.abook
          #chmod 600 $ABOOK/$USERNAME.abook
          #chown www.www $ABOOK/$USERNAME.abook
          # Informa que o usuário foi criado
          echo -e "INCLUIDO - U:$USERNAME \tS:$SENHA \tE:$EMAIL"
          # Gera uma Msg de Boas vindas!
          #Wed, 6 Apr 2005 11:48:47 -0000 (UTC)
          #Convertendo data para ingles
          DIA=`date +%a`
          case $DIA in
          Seg) DIA="Mon" ;; 
          Ter) DIA="Tue" ;; 
          Qua) DIA="Wed" ;; 
          Qui) DIA="Thu" ;; 
          Sex) DIA="Fri" ;; 
          Sab) DIA="Sat" ;; 
          Dom) DIA="Sun" ;; 
          esac
          MES=`date +%b`
          case $MES in
          Abr) MES="Apr" ;; 
          Mai) MES="May" ;; 
          Ago) MES="Aug" ;; 
          Set) MES="Sep" ;; 
          Out) MES="Oct" ;; 
          esac
          echo -e "\nFrom postmaster@$MYDOMAIN  `date +\"%a %b %d %X %Y\"`\nReturn-Path: <postmaster@$MYHOSTNAME>\nX-Original-To: postmaster\nDelivered-To: postmaster@$MYDOMAIN\nReceived: by $MYHOSTNAME (Postfix, userid 0)\nFrom: \"POSTMASTER\" <postmaster@$MYDOMAIN>\nTo: $USERNAME@$MYDOMAIN\nSubject: Mensagem de Boas Vindas!!!\nDate: $DIA, `date +%e` $MES `date +%Y` `date +%T` -0300 (BRT)\n\n   Bom Dia! \n   Este eh o novo servico de Correio Eletronico do dominio RJO.CCOM.EB.MIL.BR, mantido pelo 2o Centro de Telematica de Area.\n   Devido ao fato de o sistema antigo estar com elevada incidencia de virus e spams, o CTA criou esse novo sistema, baseado no SquirrelMail 1.4.4, que teve seu codigo modificado para atender aas necessidades do Exercito Brasileiro.\n   O Servidor de Correio esta equipado com softwares anti-virus (Clamav) e anti-spam (SpamAssassin), atualizados constantemente pela equipe de seguranca da informacao.\n   Apesar de as mensagens, em grande parte, serem inofensivas, acarretam sobrecarga, com diminuicao de desempenho do Sistema, alem de transtornos e prejuizos administrativos aas OM e aa imagem do Exercito.\n\n   Abaixo temos as caracteristicas da caixa postal dessa OM:\n- Espaco para Guardar Mensagens: $MAILQUOTA MBytes\n- Tamanho Maximo por Mensagem: 10 MBytes\n- Tempo Maximo de Permanencia das Mensagens: 60 dias\n\nOBSERVACOES:\n  - Procure apagar algumas mensagens para liberar mais espaco quando sua caixa postal chegar a mais de 90% de sua capacidade (Vc recebera uma mensagem de aviso).\n  - Quando sua quota atingir 100% de utilizacao, vc nao recebera mais mensagens.\n  - Mensagens com mais de 60 dias serao automaticamente apagadas.\n  - Vc pode salvar algumas mensagens como arquivo, antes de apaga-las.\n  - Caso Vc queira recuperar as mensagens do antigo sistema, entre em contato conosco.\n\nCriticas ou sugestoes: postmaster@$MYDOMAIN\n\nAtt.\n --------------------------\n Secao de Gerencia de Redes\n 2CTA - Div Op - SGRT\n Contatos (2519-5076/5068)\n" >> $BASEDIR/$USERNAME
  fi
  i=`expr $i \+ 1` 
  USERNAME=`echo $TODOS | cut -d " " -f $i`  # pega outro usuario do banco
  # verifica se o usuario está no arquivo de senhas
  if [ "$USERNAME" != "" -a "$USERNAME" != " " ]; then
    NOME_TMP=`grep ,$USERNAME,x $ENTRADA | cut -d "," -f 4`   
    NOME=`echo $NOME_TMP | cut -d " " -f 1`
  fi
done
echo -e "---------------------------------------------------------------------------------------------\n"

Scripts recomendados

Monitorando processo do Squid em diferentes redes

Script para conectar a um servidor ssh

Monitorando o serviço do Squid utilizando como Proxy Transparente

Instalação automática do Nagios

Montando pendrive


  

Comentários
[1] Comentário enviado por diaspcf em 07/05/2007 - 15:25h

Caro Usuário,
Tente pegar o script a partir do código fonte, pois parece que o link está quebrado.
Obrigado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts