Какие разрешения необходимы для удаления файла в Windows - PullRequest
4 голосов
/ 15 мая 2011

В CreateFile () есть DesiredAccess, например GENERIC_READ, GENERIC_WRITE, FILE_READ_ATTRIBUTES и т. Д.

Мой вопрос: какие минимальные / точные разрешения необходимы для единственного удаления файла в системе?

Спасибо

Ответы [ 2 ]

4 голосов
/ 15 мая 2011

Если вы просто хотите удалить файл, используйте функцию DeleteFile.

В документации подробно указано, какие разрешения вам нужны, и несколько вещей, которые вы должны знать, например:

Если вы запрашиваете разрешение на удаление во время создания файла, вы можете удалить или переименовать файл с этим дескриптором, но не с любым другим дескриптором.

На этой странице документации есть полезная информация, включая ссылку на Безопасность файлов и Права доступа .

Посмотрите на страницу ACCESS_MASK, связанную со страницей документации OpenFile, для фактического флага прав доступа для удаления - он просто называется DELETE.

Но слово предостережения: этот тип чеков всегда является грубым. Права доступа к файлу могут меняться между проверкой прав доступа и последующим удалением. ( Время проверки / время использования .)

2 голосов
/ 15 мая 2011

Вам нужен только DELETE доступ, я полагаю. Это не право доступа к файлу, это стандартное право доступа.

Не легко обнаружить, что эти стандартные права доступа разрешены, но на странице MSDN о правах доступа к файлам указано:

Действительные права доступа к файлам и каталогам включают стандартные права доступа DELETE, READ_CONTROL, WRITE_DAC, WRITE_OWNER и SYNCHRONIZE.

...