- ベストアンサー
cgiでメールを発信する時のユーザ
UNIX(SUN,Solaris2.4)の環境下でcgiよりsendmailコマンドでメール を送信するようなプログラムを作成しています。 メール送信をした場合、そのデーモン(プロセス)がnobodyのユーザで 実行されているのですが、このユーザをnobodyではなくrootや違うユーザ などで送信プロセスを発行することは出来ないのでしょうか?
- pochi0000
- お礼率37% (3/8)
- その他(メールサービス・ソフト)
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
質問の意図がイマイチわからないのですが. nobody のプロセスで動くと何か都合が悪いのですか?? 一番、手っ取り早い解決方法は(あまりお薦めしませんが) cgi のパーミッションに suid ビットを立てる 方法があります. WWW サーバそのもののプロセスを nobody 以外の ユーザの権限で動くようにすれば cgi もサーバの ユーザで動くと思いますが...
その他の回答 (1)
CGIの実行は基本的に nobody ユーザーで行われます。これは、「CGIを実行しているのはホームページの閲覧者」であるためです。 よってユーザー名を別のユーザーにするには、CGIから別のユーザーに化ける必要があります。 やったことはないですが、おそらくは su コマンドを使えばできるはずです。
お礼
回答ありがとうございます。 でも、cgi内ではsuコマンドは使えないと思います。
関連するQ&A
- mailコマンドについて
UNIXのmailコマンドについてです。 test.dat というファイルを作成し、(vi) mail コマンドを実行すると % mail aaa@bbb.ne.jp < test.dat test.datがaaa@bbb.ne.jp に行くと考えています。 ある一台のサーバから実行するとちゃんと送れるのですが もう一台のサーバから実行すると送れません。 やたら時間が掛かった上に、送信できない状態です。 しかも Host unkown で返ってきました。 送信できる方のサーバは Solaris2.5 で sendmailの設定、DNSの設定、POP3のインストール mnewsのインストール がされています。 送信できない方のサーバは Solaris7 で メールに関する設定はほとんどやっていません。 当然、ここに問題があると思うのですが、 メールの送信にあたって、何の設定をすればいいのでしょうか?
- ベストアンサー
- その他(OS)
- FreeBSDでのsendmailでのメール送信
はじめまして FreeBSD11.0で自前サーバ構築をしています。 今回、サーバ上からsendmailで、下記ページを参考にメールを送信を試みています。 ・http://x68000.q-e-d.net/~68user/unix/pickup?sendmail FreeBSD11.0上での作業は、以下の通りです。 1. /etc/rc.confに下記を追加 sendmail_enable="YES" 2. リブート 3. sendmailが動作していることを下記で確認 # /etc/rc.d/sendmail status sendmail is running as pid 713. sendmail_msp_queue is running as pid 716. # 4. sendmailコマンドを実行 % sendmail From:送信元メールアドレス To:宛先メールアドレス Subject:タイトル xxx . % ●結果、コマンドは、正常に終了してますが、メールは、送信できません。 試しに自分の契約しているレンタルサーバ(FreeBSD9.1)で上記の4.のsendmail コマンドを実行すると、メール送信ができます。 環境設定など作業上なにが足らないのでしょうか。 FreeBSDのsendmailコマンドでの送信についてご存知の方がおりましたらご教示頂け ないでしょうか。 いろいろと調べたり試行錯誤したのですが、解決できなく質問をさせて頂きました。 よろしく、お願いいたします。
- 締切済み
- BSD系OS
- cron実行時のメールについて
SolarisでCRONを実行した場合 メールが送信されるようですが cronに登録してあるものでもメールが送信されるモノと されないモノが存在します 実行コマンドのリダイレクトに下記が実行されているわけでもないのですが コマンド >/dev/null 2>&1 コマンド 1> /dev/null OSはSolaris9です ご存知の方ご教授ください
- ベストアンサー
- Solaris系OS
- SENDMAIL:root以外のローカルユーザはunknown
SENDMAILサーバ上のすべてのローカルユーザにメール送信ができません。rootへは可能です。maillogを見ると「UserUnknown」と表示されています。ローカルユーザAからローカルユーザBにmailコマンドで送信した場合、「Saved message in /home/A/dead.letter」というエラーメッセージが表示されます。 ログインできる有効なローカルユーザに送信ができないのは何故なのでしょうか...? ご教授お願いします。 *今日SENDMAILの再インストールも行いました。
- ベストアンサー
- Linux系OS
- CGIを実行した時に作ったファイルの所有者に関して
Proftpdとapacheを用いてWebサーバを運用していますがCGIやPHPによって作られたファイルの所有者がapacheになってしまいFTPからファイルが削除できません。 hoge.hoge.comはhogeでCGIを実行し aa.hoge.comはaaでCGIを実行することはできないのでしょうか? バーチャルホストでCGIを実行するときは何か別に記述が必要なのでしょうか? ちなみにFTPDは User nobody Group nobody apacheは User apache Group apache このように設定してあります。
- ベストアンサー
- Linux系OS
- CGIでメール送信がしたい
ホームページからメールを出すCGIを作ろうとしています。 コマンドからCGIを直接実行すると問題なく動くのですが、formから動かすと Premature end of script headers: ・・・・ というエラーがでます。いろいろ探してみたんですが、分かりませんでした。 改行コードは端末からviで書いてますので、問題は無いだろうと思っているんですが… エラーはでますが、メールは送っているようです。 コマンドから実行した場合の差出人はroot@hoge.netになっているんですが、 ページから実行させたものはanonymous@hoge.netになります。 きっと勉強不足でとんでもないことをやっているんだろうと思うのですが、 探した範囲には答えがありませんでした。 どこが悪いのか教えてください。よろしくお願いします。 サーバーはVine2.6R1でApacheを使っています。 (test.html) <html> <body> <form name="down" action="/cgi-bin/test/a.cgi" method="post"> <input size="20" type="text" name="a_sel"> <input type="submit"> </body> </html> (a.cgi) #!/usr/bin/perl require '../mimew.pl'; require '../jcode.pl'; $sendmail = "/var/qmail/bin/sendmail"; $master_id = "ho\@hoge.net"; $msg="メッセージ"; &jcode'convert(*msg,'jis'); open (ML,"| $sendmail $master_id"); print ML $msg; close(ML); exit;
- ベストアンサー
- CGI
- ユーザーディレクトリでCGIの実行ができない。
環境 FedoraCore2 Apache で、ルートディレクトリでCGIの実行が可能であるのに、ユーザーディレクトリに設置したCGIは500エラーを起こして実行できません。 ブラウザを通してアクセスすると500が出ますが、ユーザーでコマンドラインからCGIを実行すると正常に結果を返します。 なお、コマンドラインでCGIを実行した場合にはログは残りませんが、ブラウザでアクセスした場合、以下のログファイルにログが記録されていました。 error_log [Tue May 16 08:49:21 2006] [error] [client 192.168.11.2] Premature end of script headers: test.cgi suexec.log [2006-05-16 08:49:21]: uid: (503/test) gid: (503/503) cmd: test.cgi [2006-05-16 08:49:21]: cannot get docroot information (/home/test) ちなみに、ネットで見つけた#!/usr/bin/perlの後ろに--を付加する方法では同様の500エラーが出てしまいました。 どなたか、原因及び解決法をご存じの方、ご教授いただければ幸いです。
- ベストアンサー
- その他([技術者向] コンピューター)
- solaris8 の mailコマンドについて
こんにちは、 今solaris8でsendmailを設定して送信テストを行っています。 メールをコマンドラインから送信しようと思い、mail コマンドを使っています。 そこでこの mailコマンドを使って、 to: cc: bcc: の宛先の指定と subject:をつけての送信テストを行いたいのですが、どうしても宛先の指定とsubjectをつけてのメール送信ができません。サーバからどのように送ればいいのでしょうか。
- ベストアンサー
- その他(OS)
- sendmailのCGIを実行させたい
ブラウザ画面から入力した内容を取得して、sendmailするCGIを作ったのですが、プロバイダへ上げて実行させてみたら、何かでつまずいていてエラーになるんです! ちなみにプロバイダは、Hi-Hoなのですが、 #sendmailのパス $SENDMAIL = '/user/lib/sendmail'; と指定して、文字の復元・変換・ヘッダの成形をした後で、 #Sendmailでメール送信 open(MAIL, "| $SENDMAIL -i -t -f $FORM{'Email'}") or die("ERROR: exec sendmail."); print MAIL $header, $body; close MAIL; と記述してるのですが、全然うまくいかないんです。 どなたか、Help Me!!
- ベストアンサー
- CGI
- CGIのみでメール送信
SENDMAIL、SMTPを使わずCGIのみでHPに設置したフォームから メールの送信って出切るのでしょうか? 皆様のお知恵をご教授ください。 宜しくお願いします。
- 締切済み
- Perl
お礼
nobodyで動作させたくないのは実はメールサーバ側で外部ドメインに発信できる ユーザを制限しているので、できればnobodyは避けたいという理由です。 色々と試した結果、 http://ユーザ名@xxx.co.jp/sendmail.html という形でページを表示してcgiをactionされると出来そうなことが 分かりました。 ありがとうございました。