最近、WMI を使用して共有を作成し、ユーザーに読み取りと書き込みのアクセス許可を与えようとしました。現在、0x1 (FILE_READ_DATA/FILE_LIST_DIRECTORY) と 0x2 (FILE_WRITE_DATA/FILE_ADD_FILE) を使用しても機能しませんでした。すべてのフラグを設定すると、フル コントロールが得られました。
読み取り、変更、およびフル コントロールの共有アクセス許可をそれぞれ設定するには、どのフラグを使用する必要がありますか?
最近、WMI を使用して共有を作成し、ユーザーに読み取りと書き込みのアクセス許可を与えようとしました。現在、0x1 (FILE_READ_DATA/FILE_LIST_DIRECTORY) と 0x2 (FILE_WRITE_DATA/FILE_ADD_FILE) を使用しても機能しませんでした。すべてのフラグを設定すると、フル コントロールが得られました。
読み取り、変更、およびフル コントロールの共有アクセス許可をそれぞれ設定するには、どのフラグを使用する必要がありますか?
試行錯誤の結果、以下のことがわかりました。
読み取り許可には、0x1200A9 を使用する必要があります。これは、次のフラグに対応します。
FILE_READ_DATA (file) or FILE_LIST_DIRECTORY (directory)
1 (0x1)
FILE_READ_EA
8 (0x8)
FILE_EXECUTE (file) or FILE_TRAVERSE (directory)
32 (0x20)
FILE_READ_ATTRIBUTES
128 (0x80)
READ_CONTROL
131072 (0x20000)
SYNCHRONIZE
1048576 (0x100000)
パーミッションを変更するには、0x1301BF を使用する必要があります。これは、次の追加フラグに対応します。
FILE_WRITE_DATA (file) or FILE_ADD_FILE (directory)
2 (0x2)
FILE_APPEND_DATA (file) or FILE_ADD_SUBDIRECTORY (directory)
4 (0x4)
FILE_WRITE_EA
16 (0x10)
FILE_WRITE_ATTRIBUTES
256 (0x100)
DELETE
65536 (0x10000)
フル コントロールのアクセス許可には、0x1F01FF を使用する必要があります。これは、次の追加フラグに対応します。
FILE_DELETE_CHILD
64 (0x40)
WRITE_DAC
262144 (0x40000)
WRITE_OWNER
524288 (0x80000)