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

Publicado por Alessandro Dias 16/05/2005

[ Hits: 4.828 ]

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

Gerar senhas aleatórias de qualquer tamanho

DEBIAN MODO AP

Script gera uma chave md5 de todos os arquivos que forem especificados

Instalação do Nagios por script

Criar políticas para o SELinux


  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts