パスワードを忘れた? アカウント作成
584401 journal

Ryo.Fの日記: Mlocalでハック

日記 by Ryo.F

先日の話題の続き。

ローカルに配送されるメールの強制(ブラインド)カーボンコピーをとる場合、sendmail.cfに手を加えずに実現する方法として、.forwardを利用する方法を書いた。この別法を二つ。

まず、やはりsendmail.cfに手を加えない方法だが、それは.prodmailrcを利用する方法だ。この方法の利点は、sendmail.cfに手を加えない、と言うこと以外に、外部転送時に、制限ユーザ検査を受けないことにある。例えば、ある一般ユーザfooが、外部アドレスfoo@external.ne.jpへの転送を設定するとしよう。これに制限ユーザであるbarがメールを送る場合を考える。これを、.forwardを使って実現すると、fooのローカルメールボックス(.forward注で\fooを指定していた場合)には配送されるが、制限ユーザ検査によりfoo@external.ne.jpには送れない。なぜなら、

送信者(sender)がbarで、受信者(recipient)がfoo@external.ne.jp

を検査することになるからだ。
一方、.procmailrcで実現した場合、この転送は成功する。この場合、.procmailrcを処理した後に制限ユーザのチェックが行われるため、送信者は、一般ユーザfooになる。

送信者fooで、受信者foo@external.ne.jp

は、制限ユーザ検査で禁止されない。

もう一つの方法は、これはsendmail.cfをハックすることである。ローカルメーラの定義(Mlocal)に変更を加える。ローカルメーラにprocmailを使っている場合、引数は、Mlocal中のA=指定で

procmail -t -Y -a $h -d $u

というような指定なっているはずだ。ここで$hは@以下、$uはローカルユーザ名である。メールアーカイバユーザをmarchとして、これを

procmail -t -Y -a $h -d march $u

の様に、$uの他にメールアーカイバユーザを加えるよう変更する。
ただし、この方法だと、メールのカーボンコピーをしないユーザを選ぶことはできない。rootやメールアーカイバも含め、すべてのローカルユーザに対するメールのカーボンコピーがメールアーカイバのメールに配送される。
ただし、この方法は、sendmail.mcの中では定義できないようだ。メーラのハックは通常、sendmail.mc中のMAILER_DEFINITIONS以下で定義するが、MlocalやMprogは、この方法ではhackできない。従って、sendmail.mcをm4で処理してできるsendmail.cfを手で編集することになる。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家

読み込み中...