Sendmail8.8.5 a virtusertable

Alexandr Malusek malusek na sysel.ujf.cas.cz
Pondělí Srpen 25 15:13:27 CEST 1997


mirs na bv.anet.cz (Miroslav Soja) writes:

> Snazim se nakonfigurovat Sendmail, aby delal aliasy podle virtual_user_table,
> ale pokud do sendmail.cf dam:
> 
>  Kvirtuser dbm /etc/mail/virtusertable
> 
> 
> a v /etc/mail samozrejme vytvorim prislusny soubor, tak mi sendmail hlasi
> po sendmail -bi: Cannot open DBM database: /etc/mail/virtusertable: No such file
> 
> pristupova prava jsou OK.
> 
> Dle dokumentace by soubor virtusertable mel byt normalni textovy.
> 
> Kde muze byt chyba??

/etc/mail/virtusertable by mel byt soubor ve formatu ndbm, konverze se
dela prikazem makemap. V RedHatu 4.1 a 4.2 mam makemap zkompilovany
tak, ze "class" dbm neumi, nicmene muzete pouzit jiny format se
kterym makemap pracovat umi (napr. hash). Radsi uvedu, jak se to
vsechno da udelat a odzkouset:

$ cp /usr/lib/sendmail-cf/cf/redhat.mc test.mc
$ vi test.mc     # uprava vzoroveho souboru redhat.mc
$ cat test.mc
divert(-1)
include(`/usr/lib/sendmail-cf/m4/cf.m4')
define(`confDEF_USER_ID',``8:12'')
define(`confCW_FILE',`/home/malusek/testy/sendmail/sendmail.cw') 
OSTYPE(`linux')
undefine(`UUCP_RELAY')
undefine(`BITNET_RELAY')
FEATURE(redirect)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
FEATURE(virtusertable, hash /home/malusek/testy/sendmail/virtusertable.db)
MAILER(procmail)
MAILER(smtp)
$ # Vytvoreni konfiguracniho souboru sendmailu test.cf:
$ m4 /usr/lib/sendmail-cf/m4/cf.m4 test.mc > test.cf
$ cat virtusertable
info na foo.com    foo-info
info na bar.com    bar-info
@baz.org        jane na elsewhere.net
$ makemap hash virtusertable < virtusertable
$ ls -ls virtusertable*
   1 -rw-rw-r--   1 malusek  malusek        72 Aug 25 13:59 virtusertable
  14 -rw-r--r--   1 malusek  malusek     16384 Aug 25 13:59 virtusertable.db
$ cat /home/malusek/testy/sendmail/sendmail.cw
foo.com
bar.com
baz.org
$ # Spusteni sendmailu v testovacim rezimu s novym konfiguracnim souborem
$ /usr/lib/sendmail -bt -C test.cf
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>

> 3,0 info na bar.com
rewrite: ruleset   3   input: info @ bar . com
... radky vynechany
rewrite: ruleset   0 returns: $# local $: bar-info
#                                ^^^^^    ^^^^^^^^
# Tedy: pouzije se local delivery agent, uzivatel je bar-info  

> 3,0 kozel na baz.org
rewrite: ruleset   3   input: kozel @ baz . org
...
rewrite: ruleset   0 returns: $# esmtp $@ elsewhere . net $: jane < @ elsewhere . net >
# Pouzije se esmtp delivery agent, posta se posle uzivateli jane na elsewhere.net

> 3,0 uzivatel na firma.cz
rewrite: ruleset   3   input: uzivatel @ firma . cz
...
rewrite: ruleset   0 returns: $# esmtp $@ firma . cz $: uzivatel < @ firma . cz >
# V tomto pripade ke zmene nedochazi

Poznamky:
1. Volal jsem jen prepisovaci pravidla 3 a 0, nebot ta jsou pro praci
s virtusertable rozhodujici. Pri prepisu adres se volaji i dalsi
pravidla, ale to by bylo na delsi povidani a z hlediska daneho
problemu to neni dulezite.

2. *.mc soubory se lisi ve verzi sendmailu 8.8.5 a 8.8.4.  Pouziti
jine verze muze vyzadovat drobne zmeny (pouzil jsem 8.8.5)

-- 
Alexandr Malusek (malusek na ujf.cas.cz)
UJF AV CR


Další informace o konferenci Linux