解決済み

sendmailでsetuidが1日経つとリセットされてしまう

  • すぐに回答を!
  • 質問No.3271757
  • 閲覧数299
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 81% (9/11)

sendmailをsetuidしても(chmod 4555)、次の日には元に戻ってしまっています(0555)
現在、phpでsendmailを使用するためには、setuidしないと送信できません。
FreeBSD 6.2
Apache/2.2.4
sendmail 8.13.6.20060614

別の質問で、a-saitoh様より下記のアドバイスをいただきました。
---------------------
> 1日経つと SUID が自動的にリセットされてしまうとのことですが、作業手順を間違えているのだと思います。
> setuid/setgidしているはずのファイル一覧と実際を比べて、予想外にsetuid/setgidされているファイルがあればモードを元に戻すと言う処理が1日に1回行われているのでしょう(cronに登録されているはず)。
> セキュリティチェックの元台帳を書き換えれば、よいはず。
> 具体的には、OSの種類ごとに違いますので、改めて質問をするとよいでしょう。
--------------------------------

どのように設定すればsetuidが持続できるでしょうか?
また、setuid以外の方法はありますでしょうか?

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 36% (146/403)

>次の日には元に戻ってしまっています
FreeBSDでは、cronで毎日実行するスクリプト群は/etc/crontabに直接記述せず、
"periodic daily "から、下記のディレクトリのスクリプトが実行されます
調べてみてはどうでしょうか。

/etc/periodic/security
/etc/periodic/daily

ただ、根本的に「sendmailをsetuidしなければならない」という対処は、
OS標準のセキュリティ対策から外れる行為だと思うので、この方法のアドバイスは他の方にお任せします。
# /etc/mail/README にヒントがありそうです。


>setuid以外の方法はありますでしょうか?
質問文からは、「PHPによるメール送信をしたい」程度の情報しか無いのでアドバイスしようがありませんが、
sendmailをsetuidしない場合、何らかのエラーがメッセージでているはずです。
# /var/log/messages ,/var/log/maillog あたりを調べてみて下さい。
補足コメント
unique2004

お礼率 81% (9/11)

phpにてメール送信時に、

/var/log/messagesには、
sendmail[68865]:NOQUEUE:SYSERR(www): can not chdir(/var/spool/mqueue/): Permission denied

/var/log/maillogには、
sendmail[68865]:File descriptors missing on startup: stdout; Bas file descriptor
sendmail[68865]:gethostbyaddr(IPv6:2001:218:2001:3005:bf) failed:1
sendmail[68865]:NOQUEUE: SYSERR(www): can not chdir(/var/spool/mqueue/):Permission denied
と、出ています。

chmod 4555 /usr/libexec/sendmail/sendmail では、メール送信できます。
chmod 0555 /usr/libexec/sendmail/sendmail では、メール送信できません。上記のエラーメッセージです。

どうすればいいでしょうか??
よろしくお願いします。
投稿日時 - 2007-08-21 21:43:50
お礼コメント
unique2004

お礼率 81% (9/11)

アドバイスありがとうございます。
補足:/etc/mail/README には、sendmail 8.12はセキュリティーが強くなっているから、それで困るならどちらかを行ってください。
と、書いてあるように思えるのですが、英語は苦手なので、あっているかどうかは不安です。2000文字を超えるので、全文は載せれませんでした。どちらかというのは、下記2つです。

1. Designate an alternative host for the submission agent to contact by altering /etc/mail/freebsd.submit.mc (or setting SENDMAIL_SUBMIT_MC in /etc/make.conf to an alternate .mc file) and using 'make install-submit-cf' in /etc/mail/. Change the FEATURE(msp) line to FEATURE(msp, hostname) where hostname is the fully qualified hostname of the alternative host.

Or:

2. Return to using a set-user-ID root sendmail binary by changing the ownership and permissions on the sendmail binary and removing the /etc/mail/submit.cf file:
chown root /usr/libexec/sendmail/sendmail
chmod 4755 /usr/libexec/sendmail/sendmail
rm /etc/mail/submit.cf
If you install from source, set the SENDMAIL_SET_USER_ID flag in /etc/make.conf.

どう思われます?
よろしくお願いいたします。
投稿日時 - 2007-08-21 22:54:36
たいせつな将来のこと。あえて、知らない人に聞いてみよう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


OKWAVE若者応援スペシャル企画

ピックアップ

ページ先頭へ