none
アクセス権限の継承について RRS feed

  • 質問

  • ASP.NETでWebアプリを開発しております。

    IISの設定でアクセス権の設定を設定後に、仮想ディレクトリにテキストファイルを格納し、

    アプリを実行しようとしたところアクセス拒否されましたのメッセージが表示されました。

    IISでのアクセス権と、仮想ディレクトリに格納したテキストファイルのアクセス権が上手く継承

    されていなかたったのが原因で発生したものと考えられました。

    そのような現象は多々発生するものなのでしょうか?

    理由などのご教授をお願い致します。

    2011年9月30日 0:46

回答

  • > やはりアプリケーションディレクトリに権限の付与した後にテキ
    > ストファイルを格納した場合は手動で付与するのが当たり前とい
    > うことでしょうか?

    権限の継承は一般的な Windows のファイルシステムと同じで、テキ
    ストファイルを追加する時点で親フォルダに設定されたアクセス権が
    継承されるはずです。

    テキストファイルを格納したフォルダで NETWORK SERVICE に「変更」
    の権限が付与されていたでしょうか? 答えが Yes なら権限は継承
    されるので手動で付与する必要はなかったはずです。答えが No だっ
    たから手動で付与せざるを得なかったのではないでしょうか?


    なお、IIS 7.0 では、ワーカープロセスのトークンに対して、実行時
    に IIS_IUSRS メンバーシップが自動的に追加されるそうです(下記
    ページ参照)。

    以前、NETWORK SERVICE に「変更」の権限を与えなくてもテキストフ
    ァイルに書き込みができたとすると、それは IIS_IUSRS グループに
    「変更」の権限を与えていたためかもしれません。

    IIS 7.0 での組み込みユーザーとグループ アカウントとは
    http://technet.microsoft.com/ja-jp/library/dd939094.aspx

     

    • 回答としてマーク yukimai 2011年10月11日 6:02
    2011年10月3日 13:28
  • テキストファイルということで気になった点があるので書きこんでみます。

    > 権限の継承は一般的な Windows のファイルシステムと同じで、
    > テキストファイルを追加する時点で親フォルダに設定された
    > アクセス権が継承されるはずです。

    確かにそうなのですが、テキストファイルをどうやって追加したかによって親フォルダのアクセス権が継承されない場合があります。
    たとえばサーバー上の別のフォルダから「移動」した場合です。
    「コピー」なら、新しいファイルが作成されるので親フォルダのアクセス権が継承されるのですが、「移動」すると前のフォルダで持っていた権限がそのままになり、親フォルダのアクセス権が継承されません。

    FTPのアップロード用フォルダが別の場所にあって、そこからサーバー上でファイルを移動したりするとこのような状態になりますので注意が必要です。

     


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    • 回答としてマーク yukimai 2011年10月11日 6:03
    2011年10月4日 1:25

すべての返信

  • IISでのアクセス権はどのように設定されたのでしょうか?

    ASP.NETでプログラムを実行する場合、デフォルトの状態ではASP.NETを実行するための特別のユーザーの権限で実行されます。
    どのようなユーザーかはIISのバージョンにもよって変わるので調べて確認してみてください。

    で、テキストファイル等へのアクセスは、この実行時のユーザーがそのファイルへのアクセス権を持っているかどうかが問題となります。

    この観点から再度アクセス権について確認されることをおすすめします。


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    2011年9月30日 2:47
  • 返信ありがとうございます

    IISでのアクセス権の設定はNETWORK SERVICEを追加して変更権限を付与しました。

    IISのバージョンは6.0でも7.0でも同様の設定です。

    アクセス拒否のメッセージが表示されたので、対象のテキストファイルのアクセス権にNETWORK SERVICE

    を追加して変更権限までを付与しますとアクセス可能になりました。

    IISの設定するタイミング等が問題で継承されない場合はあるのでしょうか

    2011年9月30日 4:10
  • > 変更権限までを付与しますとアクセス可能になりました。

    普通は、アプリケーションディレクトリ対しては読み込み権限で十分だか
    ら、それ以上の権限が必要な場合は(今回は変更が必要なのですよね?)、
    手動で追加の権限を付与するというのは当たり前のような気がしますが。

     

    2011年9月30日 13:33
  • 返信ありがとうございます

    権限では「変更」は必要です。

    数多く検証した訳ではないのですが、IISのアプリケーションディレクトリに権限を

    付与した後にテキストファイルを格納した場合にはアクセス拒否というメッセージは

    表示されなかったのですが。

    やはりアプリケーションディレクトリに権限の付与した後にテキストファイルを格納した場合は

    手動で付与するのが当たり前ということでしょうか?

    2011年10月3日 2:35
  • > やはりアプリケーションディレクトリに権限の付与した後にテキ
    > ストファイルを格納した場合は手動で付与するのが当たり前とい
    > うことでしょうか?

    権限の継承は一般的な Windows のファイルシステムと同じで、テキ
    ストファイルを追加する時点で親フォルダに設定されたアクセス権が
    継承されるはずです。

    テキストファイルを格納したフォルダで NETWORK SERVICE に「変更」
    の権限が付与されていたでしょうか? 答えが Yes なら権限は継承
    されるので手動で付与する必要はなかったはずです。答えが No だっ
    たから手動で付与せざるを得なかったのではないでしょうか?


    なお、IIS 7.0 では、ワーカープロセスのトークンに対して、実行時
    に IIS_IUSRS メンバーシップが自動的に追加されるそうです(下記
    ページ参照)。

    以前、NETWORK SERVICE に「変更」の権限を与えなくてもテキストフ
    ァイルに書き込みができたとすると、それは IIS_IUSRS グループに
    「変更」の権限を与えていたためかもしれません。

    IIS 7.0 での組み込みユーザーとグループ アカウントとは
    http://technet.microsoft.com/ja-jp/library/dd939094.aspx

     

    • 回答としてマーク yukimai 2011年10月11日 6:02
    2011年10月3日 13:28
  • テキストファイルということで気になった点があるので書きこんでみます。

    > 権限の継承は一般的な Windows のファイルシステムと同じで、
    > テキストファイルを追加する時点で親フォルダに設定された
    > アクセス権が継承されるはずです。

    確かにそうなのですが、テキストファイルをどうやって追加したかによって親フォルダのアクセス権が継承されない場合があります。
    たとえばサーバー上の別のフォルダから「移動」した場合です。
    「コピー」なら、新しいファイルが作成されるので親フォルダのアクセス権が継承されるのですが、「移動」すると前のフォルダで持っていた権限がそのままになり、親フォルダのアクセス権が継承されません。

    FTPのアップロード用フォルダが別の場所にあって、そこからサーバー上でファイルを移動したりするとこのような状態になりますので注意が必要です。

     


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    • 回答としてマーク yukimai 2011年10月11日 6:03
    2011年10月4日 1:25