• 締切済み

コピーが・・・

先日質問をして、回答を頂きありがとうございました。 今回も、是非お教えください。  PHPでcopy関数により  ・クライアントのファイルをサーバへ  ・サーバのファイルをクライアントへ  と言うことをしようとしています。   例:copy("\\\\192.168.xx.0\\sv\\file1.txt", "\\\\192.168.xx.2\\cl\\file1.txt");  でも、クライアント側へのファイル権限がありコピーできません。  どの様にしたら権限の変更等が可能なのでしょうか?  chmodはWinでの使用ができないので・・・。  環境  サーバ:Win2000, WinApache, PHP  クライアント:Win2000  閉じたLANでの運用(インターネット接続なし) 不十分な説明ですが、おわかりの方がおりましたらお願いします。 

みんなの回答

  • togino
  • ベストアンサー率75% (97/129)
回答No.4

Apache for Win32 がサーバ上でサービスとして 起動しているのであれば、 「管理ツール」-「サービス」から Apache を 探して「プロパティ」の「ログオン」にて クライアント側に書き込みできるアカウントと そのパスワードを設定してみてください。 おそらく、サーバとクライアントで同じアカウントが 存在しますよね。 あとは、apache を再起動してみて、タスクマネージャで apache のユーザ名が先ほど設定したアカウントに なっているか確認した上で copy("\\\\192.168.xx.0\\sv\\file1.txt", "\\\\192.168.xx.2\\cl\\file1.txt"); を実行してみてください。 これで、僕のところではようやく クライアントに書き込みが出来ました。 # LocalSystem アカウントでは、クライアントに # 一切アクセスできないのかな。

すると、全ての回答が全文表示されます。
  • togino
  • ベストアンサー率75% (97/129)
回答No.3

> clフォルダは、共有にしてあります。 > プロパティでは、 >  Web共有:このフォルダを共有にしない >  共有:このフォルダを共有する/無制限 >  セキュリティ:Everyone >        アクセス許可は、全てチェック(グレー)されています。 この「共有」タブの中の「アクセス許可」というボタンが あると思います。ここでも書き込み権限があるでしょうか? こうなっていると、(非常に危険ではありますが)Everyone で 認証なしで書き込みが出来ると思います。 つまりサーバ側のPHPの copy コマンドで書き込みが 出来ると思うのですが・・・ あの~、PHP を使わず、サーバ側から普通にファイルの コピーにてクライアントに書き込みできますよね。 #(ASPでも同じなのかなぁ・・・ひとり言) たぶん一緒だと思いますけど・・・ IIS を動かしているプロセスのオーナーと Apache を動かしているプロセスのオーナーの 違いくらいじゃないんですかねぇ(ひとり言) う~ん、これでもダメなら \\\\192.168.xx.2\\cl に「ネットワークドライブ」 で N: ドライブとかを割り当ててみてはどうでしょう?

Neko-chan
質問者

お礼

ご連絡、ありがとうございます。 >この「共有」タブの中の「アクセス許可」というボタンが >あると思います。ここでも書き込み権限があるでしょうか? はい。一応ここも全て「許可」にチェックにしてみてやったのですが。。。。 やはり、クライアント側からのコピーはできないのでしょうかねーー。 普通にDosプロンプトでは「Copy」コマンドでコピーできるのですが、PHP,ASPでの実行となると セキュリティ上できない仕組(?)になっているんでしょうか・・・・。 (copyのバッチファイルをキックしてもダメでした)。 ドライブ割当は、まだやってませんので、これからチャレンジしてみます。 色々ありがとうございました。 もう少し、頭を悩ませてみます。

すると、全ての回答が全文表示されます。
  • togino
  • ベストアンサー率75% (97/129)
回答No.2

> copy("\\\\192.168.xx.0\\sv\\file1.txt", "\\\\192.168.xx.2\\cl\\file1.txt"); 例にあげられている、書き込み先のフォルダが \\192.168.xx.2\cl\file1.txt ってなっており ここに cl ってあるので・・・このフォルダの 名前(えっと共有してるんですよね)のつもり でしたが。

Neko-chan
質問者

お礼

申し訳ありませんでした。 自分で書いておきながら、質問してしまいすみません。 >192.168.xx.0 で動く Apache アカウントへの >(最悪、Everyone への)書き込み権限を与える >ことは可能なのでしょうか? clフォルダは、共有にしてあります。 プロパティでは、  Web共有:このフォルダを共有にしない  共有:このフォルダを共有する/無制限  セキュリティ:Everyone         アクセス許可は、全てチェック(グレー)されています。 ここに、別途192.168.xx.0 で動く Apache アカウント の許可をさせると言うことなんでしょうか? その場合、どこをどのような設定に・・・ (ASPでも同じなのかなぁ・・・ひとり言) 度々、申し訳ありません。

すると、全ての回答が全文表示されます。
  • togino
  • ベストアンサー率75% (97/129)
回答No.1

確認です。 あらかじめですね、 192.168.xx.2 のマシンの共有フォルダ cl に 192.168.xx.0 で動く Apache アカウントへの (最悪、Everyone への)書き込み権限を与える ことは可能なのでしょうか?

Neko-chan
質問者

補足

ありがとうございます。 すみません、 >192.168.xx.2 のマシンの共有フォルダ cl に と言うところの cl とはなんでしょうか? すみません、頭が悪くて申し訳ないです。

すると、全ての回答が全文表示されます。

関連するQ&A