テキストファイルにログを書き込む以下の処理があります。
aaa.pl
--------------------
open Log,">>aaa.txt";
print Log 'test';
close Log;
Web上(アパッチ)からこのaaa.plを実行すると
正常に処理されて、aaa.txtに書き込まれます。
(aaa.txtのオーナーはwww。属性は644)
それとは別に、/etc/aliasesに
特定のメールアカウントにメールが送られた時に
このaaa.plが実行されるように設定しているのですが
mail_address:"|/ccc/aaa.pl"
(パスは適当ですが、実際にはあっています)
こちらからaaa.plが処理させても、
aaa.txtに文字列が書き込まれなくて困っています。
open Log,">>aaa.txt";
chmod 666,"aaa.txt";
...
とPerl側でパーミッションを変更させようとしても
うまく変更されていません。処理もされません。
おそらくaliasesに設定したPerlの実行権限者が
ファイルの所有者(この場合www)と異なる為
書き込みもchmodもうまくいかないと思うのです。
aliasesで実行させるアカウントは
いったいどのようなアカウントなのでしょうか(binユーザーとか?)
また、これを回避するにはどのようにすればよろしいでしょうか?
どなたかご存知の方、どうぞよろしくお願い致します。
No.2ベストアンサー
- 回答日時:
>読んでいるのはsendmailになります。
>となると、どのアカウントになるのでしょうか?
設定によっても変わりますが、おそらくbinだと思います。
(すいません。私はqmail派なのでsendmailはよくわかりません)
>aaa.txtが格納してあるフォルダのパーミッションが
>770になってます(これは訳ありで変更不可)
このパーミッションだとperlの実行自体行われていないかもしれません。
perlの実行されているuidを調べる場合、$<でも良いですが、今回の場合実際にperlが起動されているかどうかも不明なので、sleep (180)とかして別プロセスからps -axすると良いと思います。
>ということは、Perlプログラムは「その他」扱い
>になっているのでしょうか?(なぜ?)
もしかしたらそうかも。
(ディレクトリの所有者でも所有者のグループにも属していない場合、「その他」扱いになります)
No.1
- 回答日時:
>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プログラムは「その他」扱い
になっているのでしょうか?(なぜ?)
重ねての質問で申し訳ございませんが、
どうぞよろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- JavaScript JavaScript|特定URLだった時、特定の要素を変更するコードの書き方を教えてほしいです 2 2023/08/25 21:43
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- Gmail gmailに弾かれて困っています。SPFレコードについて、これは詰んでいるでしょうか 3 2023/06/10 13:08
- Gmail SPFレコードとDNSサーバーについて、gmailを設定できるかどうか 2 2023/06/10 23:55
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
PerlでUTF-8のファイルの文字列...
-
Perlで時間の計算
-
openした後、closeしないでプロ...
-
Perlで、「が」を、「...
-
Perlのエラーについてご教授く...
-
bashスクリプト
-
perlで2次元配列をサブルーチ...
-
perlのrequireの動き方について...
-
INDIRECT 横に再度抽出したい
-
Perlで縦横変換のような事をし...
-
perlの記述方法について
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlソースコードをコンパイル...
-
プロシージャの戻り値を取得す...
-
system関数を使用してJava実行...
-
Perlで環境変数を設定するには
-
Perlのexitについて
-
Windows版Perlの標準入力&標準...
-
perl/tkを使って作ったGUIを実...
-
-i -e "s|^.|ok|" ./text どこ...
-
Perlでのプログラム実行方法
-
perlで 引数1を別リストの複数...
-
MediBang Paint Proについて
-
cgiを実行可能にするには
-
UNIX SUN Solarisで時間の演算
-
perlでコマンドプロンプト実行
-
テキストファイルに書き込めな...
-
pp (Perl Packager) で require...
-
Perl リスト内指定回数繰り返し
-
ActivePerlで#!/usr/bin/が無効
-
perlからcを呼び出す
-
CGI Chart::Gnuplotの使用法
おすすめ情報