[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 メーリングリストの案内