- PR -

PHP(IIS5)から共有フォルダ等へのアクセス権について

1
投稿者投稿内容
バルクマン
会議室デビュー日: 2006/08/22
投稿数: 13
投稿日時: 2009-02-04 16:47
PHP5をIIS5(Win2000)上で使用しています。

クライアントからアップロードされたファイルを、とある場所に
格納したいと考えています。Webサーバ上のローカルディスクにコピー
する処理については問題が無いのですが・・・

これを別サーバに格納しようとすると「権限無し」のエラーが発生します。
別サーバはWindows2003で、Windowsの共有フォルダに対する処理です。
「権限無し」ということなので、書き込もうとしているフォルダ、その処理を
行おうとしているユーザに必要なアクセス権が無いことだと思いますが、
どの部分を設定すればよいのか良く判りません。

・共有フォルダの共有アクセス許可に、IUSR(Webサーバ、別サーバ)やeveryoneをフルコントロールで付加。
・セキュリティに、IUSRやeveryoneをフルコントロールで付加。
などとやってみましたが権限無しではじかれます。

move_uploaded_file($_FILES['file']['tmp_name'],'G:\\\\temp\\\\' . 'hoge.txt'))
→OK
move_uploaded_file($_FILES['file']['tmp_name'],\\\\hogehoge\\hoge . 'hoge.txt'))
→NG

Warning: copy(\\\\hogehoge\\hoge\\hoge.txt) [function.copy]: failed to open stream: Permission denied in XXXXX on line XX
バルクマン
会議室デビュー日: 2006/08/22
投稿数: 13
投稿日時: 2009-02-04 18:38
エラーメッセージに誤りがありました。

move_uploaded_file(\\hogehoge\hoge\hoge.txt) [function.move-uploaded-file]: failed to open stream: Permission denied in hoge.php on line XXX

失礼しました。
バルクマン
会議室デビュー日: 2006/08/22
投稿数: 13
投稿日時: 2009-02-09 14:28
自己レスですが、一応解決。
セキュリティが妥当であるかどうかは全くの別問題としまして、

グループポリシーにて、
「ネットワークアクセス:Everyoneのアクセス許可を匿名ユーザに適用する」
を有効にしてやり、everyoneに書き込み可能権限を付けてやればOKのようです。
バルクマン
会議室デビュー日: 2006/08/22
投稿数: 13
投稿日時: 2009-02-09 18:06
記載洩れがあった為、恐縮ながら追加
1.グループポリシー(コンピュータの構成→Windowsの設定→セキュリティの設定→ローカルポリシー→セキュリティオプション)の「ネットワークアクセス:匿名でアクセスできる共有」にアクセスしたい共有名を追加。
2.アクセスしたい共有フォルダの「セキュリティ」タブでeveryoneを書き込み可で追加。

但し、上記の設定が必要なのはIIS5(Win2000)の場合で、IIS6(Win2003)の場合ですとこのスレッドで報告したような現象は発生しませんでした。

[ メッセージ編集済み 編集者: バルクマン 編集日時 2009-02-09 18:40 ]
バルクマン
会議室デビュー日: 2006/08/22
投稿数: 13
投稿日時: 2009-02-10 16:20
またしても間違いありで恐縮の限りですが、、、
「Everyoneのアクセス許可を匿名ユーザに適用する」それにeveryoneの権限云々は
無関係であり、
「匿名でアクセスできる共有」とANONYMOUS LOGONに必要な権限を付与してやれば
OKのようです。
一人でスレッドを消費して申し訳ありません。
1

スキルアップ/キャリアアップ(JOB@IT)