3. Utilitários de administração

3.1. maildir2mbox

Converte caixas de correio no formato Maildir para o formato mbox (Mailbox).

Requer 3 (trêz) variáveis de ambiente setadas:

Variável

Descrição

$MAIL

Localização do Mailbox do usuário a ser criado.

$MAILTMP

Localização do arquivo temporário de transição a ser utilizado.

$MAILDIR

Localização do Maildir do usuário a ser convertido.

$MAIL e $MAILTMP precisam estar no mesmo sistema de arquivos.

maildir2mbox não remove a mensagem de $MAILDIR enquanto não escreve-la completamente dentro de $MAIL.

maildir2mbox trava o arquivo $MAIL para protegê-lo de acesso simultâneo por um cliente de e-mail. Este sistema de trava não protege $MAIL de acesso simultâneo por outro processo maildir2mbox. Execute apenas uma instância de maildir2mbox por vez.

3.2. maildirmake

maildirmake Maildir

Cria o diretório Maildir utilizando o formato de caixa de correio Maildir.

maildirmake criará a estrututra new, cur e tmp dentro de Maildir, aonde Maildir deve ser criado dentro do diretório $HOME do usuário e usuário deve ser o dono de Maildir e todos os seus subdiretórios.

3.3. qmail-getpw

qmail-getpw local

Procura o usuário que controla o endereço local. Retorna usuário, Unix userid, Unix groupid, $HOME, traço e extensão.

Quando local é igual a usuário, traço e extensão retornam vazios.

Quando local é igual a usuário-algumacoisa, traço será “-“ e extensão será “algumacoisa”.

Aonde, mensagens para local serão gerenciadas por $HOME/.qmail-traçoextensão.

Se qmail-getpw não encontrar o usuário que controla local, o usuário alias entra em cena e toma o controle da mensagem. Neste caso, traço será “-“ e ext será “local”.

Se qmail-getpw encontrar problemas na execução, sai com código de erro diferente de 0 (zero) e não imprime nada em tela.

qmail-getpw considera como conta local todos os usuários do arquivo /etc/passwd se:

  • Não possuir UID 0 (zero).

  • O diretório $HOME do usuário existir e for visível por qmail-getpw.

  • O usuário é o dono de seu diretório $HOME.

qmail-getpw ignora nomes de usuários que contenham letras em maiúsculas.

qmail-getpw assume que todos os nomes de usuários possuem menos de 32 caracteres.

OBS: O mecanismo qmail-users cancela as decisões tomadas por qmail-getpw, é confiável, altamente configurável e muito mais rápido que qmail-getpw.

3.4. qmail-newmrh

Cria o arquivo base de dados control/morercpthosts.cdb em formato binário a partir do arquivo control/morercpthosts, que será utilizado pelo programa qmail-smtpd de forma mais eficiente.

Caso exista algum problema com o arquivo control/morercpthosts, qmail-newmrh exibe uma mensagem de erro e não gera o novo arquivo control/morercpthosts.cdb.

qmail-newmrh assegura que control/morercpthosts.cdb seja atualizado atomicamente (atualizações simultâneas), desta forma, qmail-smtpd não precisa aguardar qmail-newmrh liberar o arquivo para acessá-lo de forma segura.

qmail-newmrh não tenta proteger control/morercpthosts.cdb contra atualizações simultâneas.

O binário control/morercpthosts.cdb é portável entre máquinas diferentes.

3.5. qmail-newu

Cria o arquivo database /var/qmail/users/cdb em formato binário a partir do arquivo /var/qmail/users/assign, que será utilizado por qmail-lspawn de forma mais eficiente.

Caso exista algum problema na leitura do arquivo users/assign, qmail-newu exibe uma mensagem de erro e não gera o novo arquivo users/cdb.

qmail-newu assegura que users/cdb seja atualizado atomicamente (atualizações simultâneas), desta forma, qmail-lspawn não precisa aguardar qmail-newu liberar o arquivo para acessá-lo de forma segura.

qmail-newu não tenta proteger users/cdb contra atualizações simultâneas.

O binário users/cdb é portável entre máquinas diferentes.

3.6. qmail-pw2u

qmail-pw2u [ -/ohHuUC ] [ -c char ]

Lê é um arquivo de senhas no padrão V7 da entrada padrão e imprime na saída padrão no formato qmail-users.

Geralmente a saída produzida pelo comando qmail-pw2u dever ser gravada no arquivo users/assign.

Cada linha de um arquivo de senhas no formato V7 deve ter a forma:

usuário:senha:uid:gid:gecos:home:shell

Aonde, usuário é o nome da conta local, uid e gid são o User ID e Group ID de usuário, home é o diretório $HOME de usuário. senha, gecos e shell são ignorados por qmail-pw2u.

qmail-pw2u ignora o usuário se:

  • Possuir UID 0 (zero).

  • Diretório $HOME não existir.

  • O usuário não for o dono de seu diretório $HOME.

  • O nome de usuário possuir letras em maiúsculo.

Se o conteúdo impresso por qmail-pw2u for gravado no arquivo /var/qmail/users/assign e for executado o comando qmail-newu, qmail-lspawn irá obedecer todas as instruções impressas por qmail-pw2u.

OBS: Após alterar qualquer usuário, uid, gid ou diretório $HOME dentro do arquivo de senhas, é necessário executar qmail-pw2u e qmail-newu novamente, para que qmail-lspawn obedeça às alterações.

As ações padrão de qmail-pw2u podem ser alteradas, utilizando-se os seguintes arquivos dentro do diretório /var/qmail/users:

  • include

Lista de usuários permitidos, um por linha.

Se include existir, e o usuário não estiver listado neste arquivo, será ignorado.

  • exclude

Lista de usuários que devem ser ignorados, um por linha.

Se exclude existir, e o usuário estiver listado neste arquivo, será ignorado.

  • mailnames

Nomes substitutos para nomes de usuários, cada linha deve ter a forma:

usuario:mailname1:mailnamel2Aonde mensagens para os endereços de e-mail mailname1, mailname1-algumacoisa, mailname2 serão entregues para usuario.

OBS: Mensagens para os endereços usuário e usuário-algumacoisa não serão entregues para usuário, a menos que estejam listados como um dos mailnames.

  • subusers

Endereços extra para nomes de usuários, cada linha deve ter a forma:

sub:usuario:extra:sub será gerenciado por $HOME/.qmail-extra, aonde $HOME será o diretório $HOME de usuário.sub-algumacoisa será gerenciado por $HOME/.qmail-extra-algumacoisa.

  • append

Tarefas extras, que serão impressas na tela no final do processamento de qmail-pw2u.

Pode-se ainda utilizar as opções:

Opção

Descrição

-o

Ignora usuário se seu diretório $HOME não existir (ou não seja visível por qmail-pw2u) ou caso não seja o dono de seu diretório $HOME (Padrão).

-h

Pára o processamento se o diretório $HOME do usuário não existir (apropriado se cada usuário deve ter seu diretório $HOME) ou caso não seja o dono de seu diretório $HOME.

-H

Não checa se o usuário é dono de seu diretório $HOME.

-u

Permite letras em maiúsculo no nome do usuário.

-U

Ignora usuário, se houver alguma letra em maiúsculo no nome do usuário (Padrão).

-c char

Utiliza char como delimitador de extensão de usuário no lugar de “-”

-C

Desabilita o mecanismo de extensão de usuários.

-/

Utiliza $HOME/.qmail-/... ao invés de $HOME/.qmail-...

3.7. qmail-qread

Gera e mostra um relatório detalhado das mensagens que estão aguardando na fila do qmail. Este relatório mostra a data que a mensagem entrou em fila, tamanho em bytes, remetente e todos os recipientes que devem receber a mensagem.

Deve ser executado pelo usuário root ou pelo usuário qmails membro do grupo qmail.

3.8. qmail-qstat

Gera e mostra um relatório com o número de mensagens que estão aguardando na fila do qmail para serem processadas e entregues.

Deve ser executado pelo usuário root ou por algum usuário do grupo qmail.

3.9. qmail-showctl

Analisa os arquivos de configuração do qmail e mostra sua configuração corrente de forma detalhada.

3.10. qmail-tcpok

Limpa a tabela de timeout TCP do programa qmail-remote, fazendo com que qmail-remote não utilize nenhuma referência de tempo para os endereços que falharam.

Deve ser executado pelo usuário root ou pelo usuário qmailr membro do grupo qmail.

3.11. qmail-tcpto

Gera e mostra um relatório com os timeouts da tabela TCP do programa qmail-remote.

Se o programa qmail-remote falhar em uma tentativa de conexão SMTP, o IP do host remoto é gravado nesta tabela. Se a conexão SMTP para este host falhar uma segunda vez (depois de no mínimo 2 minutos de conexões sem sucesso), esta entrada é marcada na tabela e o qmail não tentará entregar esta mensagem por 1 (uma) hora.

Deve ser executado pelo usuário root ou pelo usuário qmailr membro do grupo qmail.

3.12. tcp-env

tcp-env [ -rR ] [ -t n ] programa [ argumentos ]

Tenta obter informações sobre conexões TCP para setar uma série de variáveis de ambiente que serão utilizadas por programa (e opcionalmente seus argumentos).

A entrada de dados para o programa tcp-env deve ser uma conexão do tipo TCP.

tcp-env é geralmente utilizado em conjunto com o programa inetd.

Opção

Descrição

-r

Tenta obter informação do host remoto e setar a variável $TCPREMOTEINFO (Padrão).

-R

Não tenta obter $TCPREMOTEINFO do host remoto.

-t n

Tempo máximo em segundos que tentará obter $TCPREMOTEINFO de uma conexão TCP antes de desistir. O padrão é 30 segundos.