[PHP-users 23083]Re: safe_modeonの状態でtouchできない。

Shuhei Tomita tomita @ zingy.or.jp
2004年 8月 25日 (水) 13:08:13 JST


On Sun, 22 Aug 2004 13:54:36 +0900
yoshiki <yoshiki @ ann.to> wrote:

冨田と申します。

> 公開ディレクトリ外でtouchを使用しファイルを作成したいのですが
> どうやらsafe_mode ONの状態ではできないようです。
> 
> safe_mode ONの状態でtouchを有効にする方法はあるのでしょうか?
> 
> PHPはVersion 4.3.3です。
> LINUXでtouch対象のフォルダパーミッションは777です。
> 
> よろしくお願いします。

safe_modeをあまり使った事がないので、本当の所ちゃんとうごくか微妙ですが、
こんな方法はどうでしょうか。

1.php.iniを修正する事ができる場合、safe_mode_gidをtrueにする。
  スクリプトのGIDと対象ディレクトリのGIDが一致していればtouchできるとの
  ことなので、touch対象ディレクトリのgidをスクリプトのgid(例:nogroup)に
  chgrpし、パーミッションを775にする。

2.php.iniを修正する事ができる場合、safe_mode_exec_dirに、別途どこか
  のディレクトリを指定し、touchのみを行うプログラム(シェルスクリプト等)
  をそのディレクトリに設置する。
  で、php側からsystem関数を使ってtouchを行うプログラムを呼び出す。

3.php以外の言語のプログラムをcgiとして(例えばperlのcgiとか)設置可能であ
  れば、touchだけを行うcgiを作成する。で、phpからhttpリクエストを送って
  touchだけを行うcgiを呼び出す。
  
  例:
  fopen("http://localhost/cgi-bin/touch_only.cgi","w");



#どうしても必要な場合を除いて、軽々にパーミッションを777にするのは避け
#たほうがよいですヨ

………………………………………………………………………………………………
		冨田 修平(Shuhei Tomita) tomita @ zingy.or.jp
………………………………………………………………………………………………



PHP-users メーリングリストの案内