sendmail を 8.12.2 に変えた(20020325 のところを見てください)ので sendmail を set-gid で動かすためのユーザとグループが必要になります。ですが、make installworld するときにその新しいユーザで /var/spool/clientmqueue の所有者とグループを設定する必要があります。つまり installworld するまえにそのユーザをあらかじめ作成しておかなければなりません。mergemaster -p という機能を使えばたぶんあなたが望む結果が得られるでしょう。ただし、古いバージョンからアップデートする場合、mergemaster を make しなおしておいてください。
1:divert(-1) 2: 3:divert(0)dnl 4:VERSIONID(`$Id: generic-bsd4.4.mc,v 8.10 1999/02/07 07:26:02 gshapiro Exp $') 5;OSTYPE(bsd4.4)dnl 6:DOMAIN(generic)dnl 7:FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access')dnl 8:FEATURE(`accept_unresolvable_domains')dnl 9:FEATURE(`relay_mail_from')dnl 10:FEATURE(`nouucp',`reject')dnl 11:define(`confDOMAIN_NAME',`xxxx.xxxxxxxxxxxx.xx.jp')dnl 12:define(`LOCAL_MAILER_PATH', /usr/libexec/mail.local)dnl 13:define(`LOCAL_MAILER_FLAGS', LOCAL_MAILER_FLAGS`'SP)dnl 14:MAILER(local)dnl 15:MAILER(smtp)dnl |
1:divert(-1) 2: 3:divert(0)dnl 4:VERSIONID(`$Id: submit.mc,v 8.6 2002/03/26 03:30:58 ca Exp $') 5:define(`confCF_VERSION', `Submit')dnl 6:define(`__OSTYPE__',`')dnl dirty hack to keep proto.m4 from complaining 7:define(`_USE_DECNET_SYNTAX_', `1')dnl support DECnet 8:define(`confTIME_ZONE', `USE_TZ')dnl 9:define(`confRUN_AS_USER', `smmsp')dnl 10:FEATURE(`msp')dnl |
% make sendmail.cf % make submit.cf |
hoge.foo.jp www.foo.jp baz.bar.jp |
127.0.0.1 RELAY 192.168.2 RELAY 192.168.3 RELAY |
# makemap hash /etc/mail/access.db < /etc/mail/access |
/usr/sbin/sendmail -L sm-mta -bd -q15m /usr/sbin/sendmail -L sm-msp-queue -Ac -q15m |
% netstat -a | grep smtp tcp4 0 0 *.smtp *.* LISTEN % ps -ax | grep sendmail 117 ?? Ss 0:00.29 sendmail: accepting connections (sendmail) 120 ?? Is 0:00.04 sendmail: Queue runner@00:15:00 for /var/spool/client 205 p0 R+ 0:00.00 grep sendmail % sockstat -4l | grep sendmail root sendmail 117 4 tcp4 *:25 *:* root sendmail 117 5 tcp4 *:587 *:* |
#!/bin/sh case "$1" in start) /usr/sbin/sendmail -L sm-mta -bd -q15m /usr/sbin/sendmail -L sm-msp-queue -Ac -q15m ;; stop) kill `head -1 /var/spool/clientmqueue/sm-client.pid` rm -f /var/spool/clientmqueue/sm-client.pid echo -n " sendmail-smclient stopped. " kill `head -1 /var/run/sendmail.pid` rm -f /var/run/sendmail.pid echo -n " sendmail-mta stopped. " ;; *) echo "Usage: `basename $0` {start|stop}" >&2 exit 64 ;; esac exit 0 |