- ベストアンサー
テキストファイルにログを書き込む処理の問題
- テキストファイルにログを書き込む処理で、ファイルの所有者と実行者の違いにより書き込みができない問題が発生しています。
- Web上から実行される場合と/etc/aliasesから実行される場合で、ログの書き込みについて異なる結果が生じています。
- aliasesで実行されるアカウントはどのようなものであり、この問題を回避する方法について情報をお探しです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>読んでいるのはsendmailになります。 >となると、どのアカウントになるのでしょうか? 設定によっても変わりますが、おそらくbinだと思います。 (すいません。私はqmail派なのでsendmailはよくわかりません) >aaa.txtが格納してあるフォルダのパーミッションが >770になってます(これは訳ありで変更不可) このパーミッションだとperlの実行自体行われていないかもしれません。 perlの実行されているuidを調べる場合、$<でも良いですが、今回の場合実際にperlが起動されているかどうかも不明なので、sleep (180)とかして別プロセスからps -axすると良いと思います。 >ということは、Perlプログラムは「その他」扱い >になっているのでしょうか?(なぜ?) もしかしたらそうかも。 (ディレクトリの所有者でも所有者のグループにも属していない場合、「その他」扱いになります)
その他の回答 (1)
- zebedeer
- ベストアンサー率66% (80/121)
>aliasesで実行させるアカウントは >いったいどのようなアカウントなのでしょうか(binユーザーとか?) /etc/aliasesを何が読んでいるかで実行uidは変わります。 (sendmailはもちろんのこと、qmailでも読むように設定できたはずだし、postfixでも使ったはず) >また、これを回避するにはどのようにすればよろしいでしょうか? aaa.txtのパーミッションを666にすれば良いのでは? もし、644で行いたい場合、/etc/aliases内でsu - www /ccc/aaa.plするとか。 (aliasesがrootで実行されてれば644でも問題ないはずだからこれはだめかも)
補足
ご返答ありがとうございます。 >/etc/aliasesを何が読んでいるかで実行uidは変わります。 読んでいるのはsendmailになります。 となると、どのアカウントになるのでしょうか? >aaa.txtのパーミッションを666にすれば良いのでは? パーミッション666に変えて試してみましたがダメでした。 aaa.txtは666ですが、 aaa.txtが格納してあるフォルダのパーミッションが 770になってます(これは訳ありで変更不可) ということは、Perlプログラムは「その他」扱い になっているのでしょうか?(なぜ?) 重ねての質問で申し訳ございませんが、 どうぞよろしくお願い致します。
お礼
ご回答ありがとうございます。 とても参考になりました。