トップ回答者
CGIがUsersグループで実行される?

質問
-
WINDOWS-XP、IIS5.1で以下の質問をします。
まず、インターネットユーザのIUSR_hostnmが、Guestsグループです。
そして、C:\Inetpubフォルダ配下<em>以外</em>にCGIファルダを作成し、仮想ディレクトリの実体ディレクトリとします。
CGIファルダにある、「とあるCGI」は、カレントディレクトリ(実体ディレクトリ)にtmpファイルを作成するプログラムです。
また、実体ディレクトリのプロパティ(ACL)には、Guestsグループありません。この条件で、「とあるCGI」は、tmpファイルを作成することが可能なのです。
つまり、IUSR_hostnmがGuestsグループなのに、Guestsグループがない実体ディレクトリでファイル作成がされるのです。
いろいろ調査するとインターネットユーザがGuestsグループでなく、Usersグループで動いているようなのです。なぜ、このようになるのでしょうか?
- 移動 Wang Huang 2012年10月2日 1:44 (移動元:Internet Information Services 5.x, 6.0 - 全般)
2008年4月3日 4:02
回答
すべての返信
-
お世話になっています。追記です。
以下のユーザ&グループがCGIフォルダのACL(許可チェック)にあるとアクセスがOKでした。
・Users
・Guests
・Everyone
・インターネットユーザIUSR_hostnm
ちなみに、今回に関して以下は無関係のようです。
・SYSTEM
・CREATOR OWNER
・Administrators
・Power Users
結果として、インターネットユーザIUSR_hostnmがGuestsの時、仮想ディレクトリの実体CGIフォルダのACLで
・Users
・Guests
・Everyone
・インターネットユーザIUSR_hostnm
のいずれかがあれば、tmpファイルが作成できました。2008年4月7日 6:50 -
ちゃっぴさん。回答ありがとうございます。
問題は、もっと単純なのかもしれません。たとえば、usersグループ以外のAグループのBユーザが、Cフォルダ内のファイルをコピー&ペーストしたとします。
Cフォルダには、BユーザとAグループのACLはありません。
すると、コピー&ペーストする以前に、Cフォルダへのアクセスができません。
つぎに、CフォルダのACLへusersグループを書き込み許可で追加します。
すると、コピー&ペーストができるのです。
つまり、Bユーザはusersグループでないのに、Cフォルダでコピー&ペーストができるのです。
ということは、ログインユーザは、デフォルトでは、Usersグループになるっていると思われるのです。あっていますでしょうか?
2008年4月9日 1:59 -
皆さん、お問合わせ・返信 ありがとうございます。
さて、私もちゃっぴさんがおっしゃられているようにIISがどういう状態で実行されているか気になります。IIS5.xの場合には実行プロセス分離について、Webサイト/アプリケーション単位のプロパティ、ホームディレクトリタブで「アプリケーション保護」という項目で制御されています。これが取っ付きにくいかもしれませんが、これが「低」だとINETINFO.EXEプロセスの実行アカウント、これ以外の場合だと管理ツール - コンポーネントサービス - IIS Out-Of-Process Pooled Applicationsのプロパティで定義されたアカウント(通常IWAM_)が実行アカウントと変わります。もっとクリアに判断できる材料としてお伝えしておきます。アクセスする際にタスクマネージャを開いておいて、そこで新規起動するDLLHOST.EXEのユーザー名を見れば一発です。そっか、とあるCGIでしたね。まあCGIがどのユーザーで動いているかを確認するのも必要でしょう。。。
一方でACLの方はファイルシステム(NTFS、FAT32...)でも違いますし、ちょっと判断するに条件が足りないですが、どうなんでしょ? そんな簡単な話してないよ、と思うかもしれませんが、フォーラムで見ている人にはわからないですし。
2008年4月11日 20:42 -
奥主さん、アドバイスありがとうございます。
「アプリケーション保護」をいろいろ変えてテストしてみましたが、今回に関しては関係なさそうです。
タスクマネージャを開いておいて見ていましたが、上記どのケースも「Perl.exeがIUSR_hostnm」で動いていました。GuestsグループのIUSR_hostnmで動いていることは、確かなようです。
また、ファイルシステムはNTFSです。私が今把握している事実は、以下のいずれかが書き込み許可でACLに入っていると、tmpファイルが作成可能ということです。
・Users
・Guests
・Everyone
・インターネットユーザIUSR_hostnmそして私が想像するには、UsersとGuestsは同等で、Everyoneは誰でも、IUSR_hostnmは自分。
なので、上記いずれかが、書き込み許可でACLに入っいれば、tmpファイル作成可能なのかなと思う次第です。
間違っているかもしれませんが…。2008年4月14日 1:25 -
Process Explorer で access token の groups を確認してください。
Process の TokenIntegrityLevel を簡単に識別する方法
これで、どの group に所属しているか一目瞭然でしょう。
なお、Windows XP では IUSR_hostname account は Guests, Users, Everyone group に含まれます。
ただの Guest account とは違います。
2008年4月22日 8:31