• 締切済み

パーミッションの3桁目を6にせずにファイルを作る

$fp = fopen( "a.html", "w" ); fputs( $fp,$buffer); fclose( $fp); (一部省略) このようなプログラムで、すでにあるa.htmlの内容を少し変化させて新しいa.htmlページを作っていきたいのですが、サーバーで試したところ、パーミッションに関するエラーが出ました。 644だったパーミッションの3桁目を6(646など)にするとファイルを作ることができました。 しかし、3桁目を6にするとセキュリティ上危険だそうで、そうしたくありません。 3桁目を6にせずにファイルを作る良いアイデアはありませんでしょうか? htmlを自動生成している人はパーミッションの3桁目を6にしているのでしょうか? よろしくお願いします。

みんなの回答

  • elf2000
  • ベストアンサー率50% (6/12)
回答No.2

下記の条件を満たすと自分がユーザー(正確にはPHPスクリプトと同じユーザー&グループ)のファイルが作成できます. ・CGI SAPIのPHPを用いる ・suexecが有効になっており,該当PHPスクリプトの処理に影響するようにする 結構難しいことを書いていますが,関連情報は参考URLを参照してください.

参考URL:
http://php.net/security.cgi-bin
bavarois
質問者

お礼

お礼が遅くなってすみません。m( _ _ )m 私には難しすぎました。 ご回答ありがとうございました。

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

PHPを動かしているユーザに権限がないためだと思います。 ファイルを作成したユーザとPHPのユーザと違うためです。 たぶん664で動くような気がします。 PHPが作成したファイルならば自分のファイルになるので644で動くはずです。 (ただし、他のユーザで操作できなくなりますが) http://www.kent-web.com/pubc/axsken/

bavarois
質問者

お礼

お礼が遅くなってすみません。m( _ _ )m ファイルを作成した所有者とPHPファイルの所有者は同じなのですがファイルを作れませんでした。 664や644でも動きません。 ご回答ありがとうございました。

関連するQ&A

専門家に質問してみよう