2012-05-09 9 views
6

私は最近、私たちのファイルサーバー上のセキュリティを再設計しました。フルコントロールのほとんどを変更とマークしました。今私の開発者は、GENERIC_ALLを使って(例えば、CreateFile()で)ファイルを開くたびにアクセス拒否メッセージを受け取ると私に伝えています。GENERIC_ALLとフォルダ/ファイルACL? GENERIC_ALLは本当に何をしていますか?

研究の結果、GENERIC_ALLGENERIC_EXECUTE + GENERIC_WRITE + GENERIC_READであったとは思われませんでした。しかし、開発者が3つの定数を追加してこれをCreateFile()に使用できたので、これは当てはまりません。

だから私は... GENERIC_ALLは本当に何をするのですか?

おかげで、

マット

+0

マシンの奇跡のような幽霊のように、TortoiseHgがタイムアウトの問題を遭遇したとき、私は今日これについて考えましたが、ユーザーの共有上にファイルを作成できません。誰でも投稿を更新しただけで、私はあなたに1つ借りています。 – mbrownnyc

答えて

4

GENERIC_ALLのアクセス権は、(所有者を変更する)WRITE_DAC(パーミッションを変更する)とWRITE_OWNERのようなものを含むすべての可能なアクセス権が含まれます。 File Security and Access Rightsページには、GENERIC_*のアクセス権がファイルの特定のアクセス権にどのようにマップされているかが示されています。 File Access Rights Constantsページには、すべての可能なファイルアクセス権が表示されます(GENERIC_ALLが使用されていると思われます)。

開発者が実際に必要とするレベルのアクセスのみを要求するように勧めてください。まれに、例えば、GENERIC_EXECUTEGENERIC_WRITEの両方で同時に開かれたファイルです。

3

GENERIC_ALLは、(ファイルのために、これは名前FILE_ALL_ACCESSを持っている) "のアクセス可能なすべてのレベル" を意味します。フルコントロールを削除したため、GENERIC_ALLの開こうとすると、アクセス拒否で失敗します(たとえば、WRITE_DACは許可されないため)。

関連する問題