Visite também: BR-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]

Tutoriais/Listas/Majordomo

De UnderLinux Wiki

Majordomo no FreeBSD

Tabela de conteúdo

Introdução

Se você precisa configurar uma lista de discussão em seu FreeBSD, veja abaixo como e simples faze-lo com o majordomo.

Instalação

Para instalar o majordomo em seu server FreeBSD, voce deve inicialmente baixar a sua distribuição mais recente de ftp://ftp.greatcircle.com/pub/majordomo/1.94.4/

Hoje 20/01/98 a versão corrente e 1.94.4, e funciona tanto com o perl 4 como com o 5. A título de ilustração, para os exemplos abaixo, vamos assumir que meu nome de domínio seja pro-unix.org.
Para facilitar vamos dividir o processo de instalacao em diversas etapas:
Logado como root, voce deve criar o diretorio /usr/tmp:

# mkdir /usr/tmp
# chmod 777 /usr/tmp

Apos criar e setar o diretório , obtenha o arquivo "majordomo-1.94.4.tar.gz" do site de FTP mencionado acima gravando-o no diretório /usr/tmp. Depois descompacte-o com a seqüência de comandos:

# cd /usr/tmp
# gzip -d majordomo-1.94.4.tar.gz
# tar -xf majordomo-1.94.4.tar

O próximo passo sera criar um usuário e um grupo , sob o qual o majordomo ira rodar. Você deve utilizar o comando adduser para faze-lo.
Anote o UID e o GID do usuario criado , pois ira precisar deles em seguida.
A título de ilustração vamos supor que você crie o usuário listserv pertencente ao group listserv, cujo UID e GID sao respectivamente 1001 e 999.
O proximo passo sera definir o diretório no qual o majordomo sera instalado , em nosso exemplo vamos usar o diretório /usr/local/majordomo-1.94.4.
A seguir você deve editar o arquivo "Makefile", e alterar as seguintes linhas:

PERL = /bin/perl
W_HOME = /usr/test/majordomo-$(VERSION)
W_USER = 123
W_GROUP = 45

Para (no nosso exemplo):

PERL = /usr/bin/perl
W_HOME = /usr/local/majordomo-$(VERSION)
W_USER = 1001
W_GROUP = 999

Salve o arquivo.
Apos editar o Makefile , voce deve editar o "arquivo majordomo.cf".
Antes de iniciar você deve criar o arquivo majordomo.cf a partir do arquivo sample.cf, para isso execute:

# cp sample.cf majordomo.cf

Agora edite o arquivo majordomo.cf , e altere as seguintes linhas:

$whereami = "example.com";
$whoami = "Majordomo@$whereami";
$whoami_owner = "Majordomo-Owner@$whereami";
$digest_work_dir = "/usr/local/mail/digest";
$sendmail_command = "/usr/lib/sendmail";
# $sendmail_command = "/usr/sbin/sendmail";
#
if ( defined $ENV{"HOME"}) {
$homedir = $ENV{"HOME"};
} else {
$homedir = "/usr/test/majordomo";
}
#

Para (no nosso exemplo):

$whereami = "pro-unix.org";
$whoami = "majordomo@$whereami";
$whoami_owner = "majordomo-owner@$whereami";
$digest_work_dir = "/usr/local/majordomo-1.94.4/digest";
#$sendmail_command = "/usr/lib/sendmail";
$sendmail_command = "/usr/sbin/sendmail";
#
if ( defined $ENV{"HOME"}) {
$homedir = $ENV{"HOME"};
} else {
$homedir = "/usr/local/majordomo-1.94.4";
}
#

Salve o arquivo.
O proximo passo em si sera instalar o majordomo propriamente dito.
Execute a sequencia de comandos abaixo:

# make wrapper
# make install
# make install-wrapper

O próximo passo sera incluir no arquivo /etc/aliases os aliases utilizados pelo majordomo.
Edite o arquivo /etc/aliases e adicione as linhas abaixo (no nosso exemplo) , no final do arquivo.

majordomo: "|/usr/local/majordomo-1.94.4/wrapper majordomo"
owner-majordomo:
listserv@pro-unix.org
majordomo-owner:
listserv@pro-unix.org

Salve o arquivo e execute o comando "newaliases" para que o banco de dados dos aliases, usado pelo sendmail, seja reconstruído.
A instalacao basica do majordomo esta praticamente concluida.
O ultimo passo sera testar a configuracao do majordomo, para ver se esta tudo correto.
Para isso execute a seguinte sequencia de comandos:

# su listserv
% cd /usr/local/majordomo-1.94.4
% ./wrapper config-test | more

Observe a saída do script mostrada em seu monitor , verifique se nao aparece nenhum erro. Se aparecer algum erro, analise os arquivos de configuracao usados durante o processo de instalacao (Makefile , majordomo.cf) e veja se encontra encontra a causa.

A saida mostrada em seu video se tudo estiver correta e semelhante a:

------------------------------------------------------------
---------------- Config-test for Majordomo -----------------
------------------------------------------------------------
--------------------- Obvious things: ---------------------
------------------ environment variables ------------------
HOME=/usr/local/majordomo-1.94.4
LOGNAME=listserv
MAJORDOMO_CF=/usr/local/majordomo-1.94.4/majordomo.cf
PATH=/bin:/usr/bin:/usr/ucb
SHELL=/bin/sh
USER=listserv
--------------------- euid/egid checks ---------------------
effective user = listserv (uid 1001)
effective group = listserv (gid 999 )
---------------------- uid/gid checks ----------------------
realuser = listserv (uid 1001)
realgroup = listserv (gid 999 )
------------------------------------------------------------
Non obvious things that cause headaches:
------------------------------------------------------------
Good: 'require'd /usr/local/majordomo-1.94.4/majordomo.cf okay.
Good: found ctime.pl okay.
Good: found majordomo_version.pl okay.
Good: found majordomo.pl okay.
Good: found shlock.pl okay.
Good: found config_parse.pl okay.
You're running Majordomo Version 1.94.4.
--==> Majordomo home directory is /usr/local/majordomo-1.94.4.
------------------- Include directories -------------------
/usr/local/majordomo-1.94.4
/usr/share/perl
.
--------------------------- Home ---------------------------
Good: changedir to /usr/local/majordomo-1.94.4 succeeded.
Good: Created a mock lock file.
---------------------- temp directory ----------------------
Good: Created a temp file in $TMPDIR (/usr/tmp).
---------------------- list directory ----------------------
Good: list directory /usr/local/majordomo-1.94.4/lists has good permissions.
--------------------------- log ---------------------------
Good: logfile /usr/local/majordomo-1.94.4/Log exists and is writeable.
------------------------- Mailers -------------------------
You have defined a mailer for delivery.
Attempting to verify that this is a valid mailer...looks okay.
You have defined a mailer for delivering administrative messages.
Attempting to verify that this is a valid mailer...looks okay.
------------------ Checking majordomo.cf ------------------
Checking to see if there are new variables that should be in
your majordomo.cf file...Nope, none that I see.
Have you configured where Majordomo is?
$whereami is pro-unix.org
Good: yup!
----------------------- end of tests -----------------------
Nothing bad found! Majordomo _should_ work correctly.
If it doesn't, check your configuration file
(/usr/local/majordomo-1.94.4/majordomo.cf)
closely, and if it still looks okay, consider asking the majordomo-users
mailing list at "
majordomo-users@greatcircle.com" for assistance. Be sure
and fully specify what your problems are, and what type of machine (and
operating system) you are using.
Enjoy!

Configurando uma lista de discussao no majordomo

O processo de criação de uma lista e muito simples, basta seguir os passos abaixo:

  • A título de exemplo vamos criar uma lista chamada freebsd ;-)

Inicialmente crie um arquivo vazio com o nome da lista que deseja criar, no diretorio "/usr/local/majordomo-1.94.4/lists".

% cd /usr/local/majordomo-1.94.4/lists/
% cp /dev/null freebsd
% chmod 644 /usr/local/majordomo-1.94.4/lists/freebsd

O proximo passo e criar um arquivo com informacoes sobre nossa lista. Este arquivo sera enviado quando o majordomo receber um comando info "list-name".
O nome do arquivo deve ser ".info" o path completo em nosso exemplo seria: "/usr/local/majordomo-1.94.4/lists/freebsd.info", este arquivo deve ser setado com "chmod 644".

O proximo passo sera criar as entradas apropriadas a nossa lista no arquivo /etc/aliases. Para isso insira as linhas abaixo no final do arquivo:

freebsd: "|/usr/local/majordomo-1.94.4/wrapper resend -l freebsd freebsd-list"
freebsd-list::include:/usr/local/majordomo-1.94.4/lists/freebsd
owner-freebsd:
listserv@pro-unix.org
freebsd-owner:
listserv@pro-unix.org
freebsd-approval:
listserv@pro-unix.org
freebsd-request: "|/usr/local/majordomo-1.94.4/wrapper majordomo -l freebsd"

Salve o arquivo e execute o comando "newaliases" para que o sendmail releia o banco de dados aliases.
Calma agora falta pouco ;-)

Mas antes de prosseguirmos e preciso fazer a seguinte consideracao: <p class="alert2">O diretorio /usr/local/majordomo-1.94.4 e todos os seus subdiretorios devem estar setados com mode 775 e todos os arquivos com mode 644.

Para sua lista estar completamente configurada, voce precisa editar o arquivo freebsd.config. Este arquivo sera criado na primeira vez que voce usar o seu majordomo.

Portanto , logo apos re-criar o banco de dados aliases mande uma mensagem para:

% echo 'lists' | mail majordomo

Alguns segundos apos enviar o mail o arquivo /usr/local/majordomo-1.94.4/lists/freebsd.config sera criado pelo majordomo.
Voce deve (logado como listserv) editar este arquivo, para definir como sua lista vai funcionar.

Veja abaixo algumas coisas que voce nao deve esquecer de fazer no momento de editar o arquivo "/usr/home/majordomo-1.94.4/lists/freebsd.config".

Se voce desejar inserir algum comentario padrao ao final de cada mensagem postada na lista procure no arquivo freebsd.config a linha:

message_footer<< END

E insira seu comentario, por exemplo:

mensage_footer = ----------------------
majordomo@pro-unix.org
---------------------- << END

Voce deve editar a linha "reply_to=" no arquivo freebsd.conf para:

reply_to=freebsd@pro-unix.org <p style="text-indent: 26px;" align="justify">Se desejar que todas as mensagens enviadas a lista tenham como endereco de replay: freebsd@pro-unix.org

Inserir um prefixo ao subject de todas as mensagens enviadas a lista, pode facilitar a identificacao das mensagens da lista pelos seus usuarios, ao checar seus mail boxes. Para fazê-lo voce deve alterar a linha abaixo . no seu arquivo freebsd.conf:

subject_prefix=

para , por exemplo:

subject_prefix= [FreeBSD]

Autor