- ベストアンサー
phpでアクセス権の設定
RedHat9 Apache1.3+PHP4.4 メールの添付ファイルをphpを使って保存しようとしています。 .qmailを使ってメールを渡し、保存するまではできたのですが、 保存されたファイルは所有者がvpopmail、アクセス権が600になってしまい、これを変更できません。 chmodは使用できないようですし、ほかに何か方法はあるでしょうか? linux、phpともにあまり詳しくありません。 宜しくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>chmodは使用できないようですし、 なにをもってそう思ったのでしょうか? どうやってchmodしようとしているのか? またはchmodしたときにどのようなエラーがあるのか 記述してみてはいかがですか?
その他の回答 (1)
- hrm_mmm
- ベストアンサー率63% (292/459)
回答No.2
ファイルを保存したプログラム上からなら、chmodの実行権限が有るはずですけど ftpアクセスやtelnetアクセスでは、phpプログラムの実行者がサイトownerになっていなければ、プログラムが保存したファイルに対しては、other権限でのアクセスとなります。 マニュアル抜粋 http://php.s3.to/man/function.chmod.html >カレントのユーザーはPHPを実行しているユーザーです。 これは普通のシェルやFTPアクセスでのユーザーとはたいて違います。
質問者
お礼
回答ありがとうございます。 .qmailで、画像を保存して、webから閲覧できるようにしたかったのですが、権限のせいでブラウザで表示できない状況だったのです。(所有者がvpopmailのため?) おかげさまで何とかなったようです。 ありがとうございました。
お礼
解決しました!chmodをしたあとに、書き込んだところ、755になりました。 なぜchmodした後書き込まないと変更されないのかわかりませんが、こういうものなんでしょうか? touch($file); chmod ($file, 0755); $fp = fopen($file,"a"); fseek($fp,SEEK_END); fwrite($fp,$text); fclose($fp);
補足
回答ありがとうございます。 以下のようなコードで試してみたのですが、アクセス権は変更されていませんでしたので、chmodは出来ないものと思っていました。 <?php $text="1234"; $file = "/home/admin/htdocs/qmail/stdin.log"; $fp = fopen($file,"a"); fseek($fp,SEEK_END); fwrite($fp,$text); fclose($fp); chmod ($file, 0755); ?>