• 締切済み

複数ユーザーでIISを共用する場合

今レンタルサーバーでホームページを複数運営しています。 環境はWindows2003 Server StandardでIIS6.0での運用です。 基本的には自分で作ったサイトを運営していますが このたび他の人のサイトも一緒に動かすことになり FTPアカウントも発行して直接更新してもらえるようにしました。 が、いろいろテストした結果 PHPやPerlなどのプログラム上から他の人のファイルを更新できてしまってます。 たとえば 以下のようなディレクトリ構成として d:/www/userA/www.aaaa.com/ d:/www/userB/www.bbbb.com/ d:/www/userA/www.aaaa.com/test.php内で fopen('d:/www/userB/www.bbbb.com/test.txt'.'a');などと実行すればuserBのファイルを勝手に書き換えられてしまいます。 知り合い限定で使ってるのでまず問題にならないとは思うのですが レンタルサーバーなどでWindows+IISを使ってるところはいくつかはありますしそういうところはどう対処しているのでしょうか? 所有権とかセキュリティのユーザーごとの設定とかいじればできそうな気がしますが 設定の参考になるサイトありましたら教えてください。 以上よろしくお願いいたします。

みんなの回答

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>FTP上は確かにその通りなのですがプログラム上から実行した場合は書き換えができてしまいます。 絶対パスをユーザーに教えなければプログラムで相対パスしか使えないと思います。 ユーザーのルートはd:/www/userXなのでFTP接続でもd:/wwwへはディレクトリの移動ができません。 従って、userXはd:/wwwの存在を知らないことになりプログラム上でパス名として使えません。 あなたはサーバーの管理者なので絶対パスを使えますがユーザーに知らせなければ、ユーザーは絶対パスを使えません。 相対パスのみで記述する方法を試して下さい。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

フォルダ毎に書き込みのセキュリティを設定して下さい。 FTPアカウントのuserAのホームディレクトリをd:/www/userAとし、上位のd:/wwwへはアクセス出来ないようにします。(d:/www/userA以下にuserAが書き込み許可) userBのホームディレクトリも同様にd:/www/userBとして、上位のd:/wwwへはアクセス出来ないようにすれば相互に書き込みを間違えることはありません。(d:/www/userB以下にuserBが書き込み許可)

yukitakao
質問者

補足

FTP上は確かにその通りなのですがプログラム上から実行した場合は書き換えができてしまいます。 たとえば aaa.com/test.php 内で フルパスでd:/www/bbb.com/test.txt に書き込みをする処理を書いた場合書き込みができてしまいます。 たぶんtest.phpを実行するユーザーがSystemか IUSR_~とかだからな気がしますが そうしたら ドメインごとに使用する匿名ユーザーを変えて フォルダごとにその匿名ユーザーだけに権限をあげるとか そういう設定が必要なのかな?と思って質問した次第です。 ググってもそういう情報がひっかからなくて^^

関連するQ&A

  • さくらインターネットで独自ドメインを複数使う場合

    さくらインターネットのレンタルサーバー、スタンダードで契約しているとします。 仮に以下の契約とします。 初期ドメイン aaaa.sakura.ne.jp 独自ドメイン(さくら以外で取得したとします。) bbbb.com cccc.com 設定で 「bbbb.com」マルチドメイン対象フォルダを 「/home/aaaa/www/b/」 「cccc.com」マルチドメイン対象フォルダを 「/home/aaaa/www/c/」 各、データーベースを 「aaaa_bbbb」 「aaaa_cccc」 も利用するとします。(WordPressかMovableType) こうした場合、whoisを利用しないとして、 http://www.bbbb.com/ http://www.cccc.com/ が同一のサーバー(同じ人が使ってる)だということがわかりますか? また、さくらが用意している、サブドメインでも同一人物の契約だと知られることはあるでしょうか? よろしくお願いします。

  • IISのユーザについて

    PHPが動作しているサーバAがあります。 そのサーバAから、別サーバ(Windows)に クライアントより添付ファイルを保存しようとすると、 failed to open stream: Permission denied と権限エラーになってしまいます。 IISのユーザ(IUSR_XXXX)を変更(偽装?)して、 サーバBに保存することはPHP内で可能でしょうか? サーバA・BともWindowsXPで、 PHP4.4を使用しています。

    • 締切済み
    • PHP
  • IISのレンタルサーバーで

    IISのレンタルサーバーで.htaccessのような基本認証を行うには、どのような方法があるんでしょうか?初心者なのでやり方が載っているサイト等があれば嬉しいです。 あとIISのサーバーでセキュリティ上、気を付けた方がいい点等がありましたら基本的な事でもいいのでご教授してください。 php,cgi,ssi,asp.net等が使えます。

  • IISの設定

    レンタルサーバーや自宅サーバーを使いたくないのでこの方法しか残っていません。 しかしながらIISは初心者ですのでどう設定すれば良いのかが分かりません。 OS:windows7 拡張:shtml IISで必要な追加項目と、設定方法を教えて頂けませんか? 宜しくお願い致します。

  • IISが落ちた場合の動きについて

    IISが落ちた場合の動きについて OS:Windows Server 2003 R2 Standard Edition SP2 用途:社内向けWebサーバ 質問1 IIS上で稼動する動的なWebサイトが落ちた場合、 ワーカープロセスのリサイクリング機能によって、 ワーカープロセスが自動再起動し、 ユーザーは処理を継続できるのでしょうか? それともWebブラウザでページを表示できなくなるのでしょうか? 質問2 IISのサービス自体が落ちた場合、 IISのサービスは自動的に再起動しないと考えて良いでしょうか? Webブラウザでページを表示できなくなるのでしょうか? サービス監視バッチ等を実行し、IISのサービスが動いているかどうかを、 監視すべきでしょうか? よろしくお願いします。

  • IISを用いた場合のアクセスカウンタ動かず

    今XPにIISを入れております。 小規模でサーバー運営をしたいと思いテストするための環境を作ったのですが簡単なところからと思ったはずがうまくいきません。 一応CGIを使ってでもいいのでアクセスカウンタを入れたいんです。 仮のトップページを作って(多少HTMLの知識あり)フリーソフトでアクセスカウンタを探したのですが比較的難しくうまく設置できません。どなたか比較的簡単なアクセスカウンタの設置方法やサイトをご教示ください。ググってもこういうところがなかなか見つからなくて(CGI使うための設定とかもです)・・・・ いろいろ知識が抜けているせいだよといわれかねないのですがとにかく早く覚えたいのでよろしくお願いします。

  • IIS 5.2 上での PHP 5.3.5 の実行

    下記サイトを参考にサーバー(OS: MS Small Business Server & IIS 5.2) に PHP 5.3.5をインストールしました。 http://network.station.ez-net.jp/server/microsoft/windows/2008/iis7_php535.asp Command Line で PHP -v と入力すると正常にバージョンが返ってくるので PHP のインストールそのものは正常に終わったと考えていますが、 PHP の実行が出来ません。 例えば中身が <?php phpinfo(); ?> という内容のテストプログラムを他の cgiプログラムと同じフォルダに置き、ブラウザでアクセスしても動作しないのです。 IIS: WEB サイト→プロパティ→ホームディレクトリ→構成 の 拡張子 .php の設定は "C:\Program.Files\PHP\php-cgi.exe" としました。勿論 exe ファイルは上記パスで指定したフォルダに存在します。 XAMPP というパッケージソフトを使用し、PCのLocal Hostをサーバーに見立てて PHPを実行する事は出来ます。 この環境で作成した PHP をサーバー上で稼動させ、外部に公開したいのです。 初歩的なところで躓いているのだと思います。 PHPに詳しい方、教えて下さい

  • URL構造変更 シンボリックリンクについて

    PHPで作られた非常に長い階層の動的なシステムを持っています。 例:http://www.●●●.com/aaaa/bbbb/ccc/dddd/eeee/1 1が個別ページを指定するものです。 設計ミスで aaaa/bbbb/ccc/dddd/eeeeは、いらないので短縮させたいのですが、 シンボリックリンクとかでここを消すことはできますでしょうか? cd /home/hogeuser/www/ ln -s /home/hogeuser/www/aaaa/bbbb/ccc/dddd/eeee/ と、したいのですが、 実際WEBサーバをみとaaaaやbbbbのフォルダがありません。 動的に識別子としてつけているようです。 システム自体の改修がかなり大掛かりになるので こういった際に階層を浅くする楽なやり方はありますでしょうか?

    • 締切済み
    • PHP
  • IISがおかしい

    クライアント環境(私のPC、Windows2000Pro)をテストサーバーにして、自社HPのアップ前のチェックなどをしておりますが、突然IIS(5.0)がおかしくなりました。起動すると「×××××へ接続エラー:指定されたパスが見つかりません。再試行し続けますか?」と出て、「はい」にしても「いいえ」にしても管理画面は表示されますが、左側ツリーの下にサーバー名が表示されません。どうしたらよいのでしょうか。

  • IISにPHPを搭載してデフォルトページを表示

    IIS2003ServerにPHPを搭載していますが、 デフォルトページが表示されなくなりました。 つまり​ttp://domain.com/ でデフォルトページを表示するはずですが、 No input file specified. というPHPがありませんというメッセージが表示されます。 IISの「既定の Web サイト」で設定しても無視されているみたいです。 PHP側で何か設定しないといけないのでしょうか?

    • ベストアンサー
    • PHP