POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - CRIANDO USUÁRIOS A PARTIR DE ARQUIVO
Publicado por Alessandro Dias 16/05/2005
[ Hits: 5.264 ]
Cria o(s) usuário(s) a partir do arquivo de senhas (senhas.csv) que ainda não estiverem no sistema. O arquivo senhas.csv é um TXT com o seguinte formato (com um "x" no final):
email,descrição,senha,nome_usuário,x
#!/bin/sh
#
###############################################################################
# Script MIGRATE_USERS.SH v2.0 #
# #
# Autor: Alessandro Dias #
###############################################################################
# Este programa faz uma completa migração de outro servidor a partir do #
# passwd antigo para o novo sistema, criando os novos usuários, definindo #
# permissões e atualizando um banco de dados Mysql. É necessário que vcs apa- #
# guem no passwd antigo os usuários do sistema deixando somente os usuários #
# com UID maior que 500. #
###############################################################################
#
BASEDIR=/var/mail
ABOOK="/srv/www/default/data"
MAILQUOTA=100
ENTRADA="senhas.csv"
MYHOSTNAME="venus.rjo.ccom.eb.mil.br"
MYDOMAIN="rjo.ccom.eb.mil.br"
clear
echo "*********************************************************************************************"
echo "* Programa MIGRATE_USER 1.0 *"
echo "*********************************************************************************************"
echo "Autor: Alessandro Dias"
echo "Quota Padrão: 100MBytes"
echo "---------------------------------------------------------------------------------------------"
echo "Usuarios do sistema: "
### LÊ OS USUÁRIOS NOVOS DO ARQ. DE ENTRADA
EMAILS=`cat $ENTRADA | cut -d "," -f 1`
DESCRICOES=`cat $ENTRADA | cut -d "," -f 2`
SENHAS=`cat $ENTRADA | cut -d "," -f 3`
NOVOS=`cat $ENTRADA | cut -d "," -f 4`
USERNAME=`echo $NOVOS |cut -d " " -f 1`
SENHA=`echo $SENHAS |cut -d " " -f 1`
EMAIL=`echo $EMAILS |cut -d " " -f 1`
DESCR=`echo $DESCRICOES |cut -d " " -f 1`
i=1
while [ "$USERNAME" != "" -a "$USERNAME" != " " ]; do
EXISTE=$(mysql -u root -ppostfix -e "select usuario from user_quota where usuario='$USERNAME'" quota)
if [ "$EXISTE" = "" ]; then
# Cria usuário no Linux
CRYPT=`openssl passwd $SENHA 2> /dev/null`
adduser -g 231 -s /bin/false -c $DESCR -p $CRYPT $USERNAME
# Cria usuário no Mysql
mysql -u root -ppostfix -e "insert into user_quota values \
('$USERNAME',$MAILQUOTA,0,0,'$EMAIL','$DESCR','$SENHA')" quota
# 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
cp -f $BASEDIR/default_mbox $BASEDIR/$USERNAME
# copia o caderno de enderecos
#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 {FONTE}33[33G S:$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 $NOVOS |cut -d " " -f $i`
SENHA=`echo $SENHAS |cut -d " " -f $i`
EMAIL=`echo $EMAILS |cut -d " " -f $i`
DESCR=`echo $DESCRICOES |cut -d " " -f $i`
done
echo -e "---------------------------------------------------------------------------------------------\n"
Agenda desenvolvida em Shell Script
Script de iniclização do Exim para Funcionamento com MailScanner
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
PIP3 - erro ao instalar módulo do mariadb para o Python (9)
É normal não gostar de KDE? (8)
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









