De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Smailli Hemori Moraes
Data de Publicação: 02 de Dezembro de 2006
Em um cliente houve a necessidade de criar um script para que fossem adicionados usuários automáticamente no sistema.
Existe um servidor de e-mail que serve como webmail para todos ou funcionários. Porém havia um problema, cada vez que um funcionário novo fosse contratado havia a necessidade de adicionar a conta do usuário manualmente no webmail.
A solução que optei foi gerar um script que juntamente com o procmail cadastre os usuários automaticamente no sistema.
#!/bin/bash FINGER=`which finger` PASSWD=`which passwd` USERADD=`which useradd` USERDEL=`which userdel` AWK=`which awk` ECHO=`which echo` GREP=`which grep` LOGGER=`which logger` add () { while read FILE ; do USUARIO=`$ECHO $FILE | $AWK -F\; '$2 { print $1 }'` if $FINGER -m $USUARIO 2>&1 | $GREP "Login: $USUARIO" > /dev/null 2>&1 ;then $LOGGER -t AUTO_USERADD "Usuário $USUARIO já existe." else SENHA=`$ECHO $FILE | $AWK -F\; '$2 { print $2 }'` if [ $USUARIO != " " ] ; then if $AWK -F: '$3 < 100 {print $1}' /etc/passwd | grep $USUARIO > /dev/null ; then $LOGGER -t AUTO_USERADD "Impossível adicionar $USUARIO. Usuário de sistema" elif $USERADD $USUARIO ; then if $ECHO $SENHA | $PASSWD --stdin $USUARIO ; then $LOGGER -t AUTO_USERADD "Usuário $USUARIO adicionado com sucesso." else $LOGGER -t AUTO_USERADD "Erro ao setar senha do usuário: $USUARIO." fi else $LOGGER -t AUTO_USERADD "Erro ao adicionar usuário: $USUARIO." fi fi fi done } del () { while read FILE ; do USUARIO=$FILE if [ $USUARIO != " " ] ; then if $AWK -F: '$3 < 100 {print $1}' /etc/passwd | grep $USUARIO > /dev/null ; then $LOGGER -t AUTO_USERADD "Impossível remover $USUARIO. Usuário de sistema" elif $FINGER -m $USUARIO 2>&1 | $GREP "Login: $USUARIO" > /dev/null 2>&1 ;then if $USERDEL -r $USUARIO ; then $LOGGER -t AUTO_USERADD "Usuário: $USUARIO removido com sucesso." else $LOGGER -t AUTO_USERADD "Erro ao remover usuário: $USUARIO." fi else $LOGGER -t AUTO_USERADD "Usuário: $USUARIO não existe." fi fi done } case "$1" in -a) add ;; -r) del ;; *) echo $"Usar: Não é possivel usar esse programa em modo interativo." exit 1 esac
:0fw # Ip do servidor que irá enviar o e-mail para a adição *^Received.*192\.168\.1\.10 # E-mail do remetente *^From:.*rh@dominio.local # E-mail do destinatário, criado um alias em /etc/aliases do adicionarusuariodosistema para root *^To:.*adicionarusuariodosistema@dominio.local # Título do e-mail *^Subject:.Base de usuarios adicionar # Executar o script com o parametro -a (Adicionar usuario) | /usr/local/bin/auto_useradd.sh.x -a :0fw # Ip do servidor que irá enviar o e-mail para a adição *^Received.*192\.168\.1\.10 # E-mail do remetente *^From:.*rh@dominio.local # E-mail do destinatário, criado um alias em /etc/aliases do removerusuariodosistema para root *^To:.*removerusuariodosistema@dominio.local # Título do e-mail *^Subject:.Base de usuarios remover # Executar o script com o parametro -r (Remover usuario) | /usr/local/bin/auto_useradd.sh.x -r
adicionarusuariodosistema: root removerusuariodosistema: root
# newaliases
usuário;senhaNesse caso a senha é o número de registro do usuário O script faz uma série de verificações para validar se o usuário em questão não existe. Se ele não existir o script verifica se o login em questão não é um usuário do sistema. Caso o usuário não exista e não seja um usuário do sistema ele o adiciona
usuarioO script faz uma série de verificações para validar se o usuário em questão é existente. Se ele existir o script verifica se não é um usuário do sistema. Caso o usuário exista e não seja um usuário do sistema ele o remove
O script gera log de todas as ações em /var/log/messages e pode ser filtrado pelo parâmetro AUTO_USERADD.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários