FileSystemWatcher - минимальные разрешения, необходимые для целевых каталогов?

Использование.NET FileSystemWatcher http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx для мониторинга каталога, полного файлов для: Изменено; Создано; Удаляется; Переименованные события.

Каковы минимальные права, необходимые учетной записи, на которой работает FileSystemWatcher, на каталог, который она просматривает?

Кажется, что это будет ЧИТАТЬ, но я не могу найти это нигде документально.

Спасибо

2 ответа

Решение

Базовым API является ReadDirectoryChangesW. Единственное, что упомянуто в статье о библиотеке MSDN, это то, что право доступа FILE_LIST_DIRECTORY требуется для дескриптора каталога, и каталог должен быть открыт с параметром FILE_FLAG_BACKUP_SEMANTICS.

.NET Framework код часто полезен. Закрытый метод FileSystemWatcher.StartRaisingEvents() использует этот код для открытия дескриптора каталога:

directoryHandle = NativeMethods.CreateFile(
    directory,                                 // Directory name
    UnsafeNativeMethods.FILE_LIST_DIRECTORY,   // access (read-write) mode
    UnsafeNativeMethods.FILE_SHARE_READ |
    UnsafeNativeMethods.FILE_SHARE_DELETE |
    UnsafeNativeMethods.FILE_SHARE_WRITE,      // share mode
    null,                                      // security descriptor
    UnsafeNativeMethods.OPEN_EXISTING,         // how to create
    UnsafeNativeMethods.FILE_FLAG_BACKUP_SEMANTICS |
    UnsafeNativeMethods.FILE_FLAG_OVERLAPPED,  // file attributes
    new SafeFileHandle(IntPtr.Zero, false));   // file with attributes to copy

Используйте FILE_FLAG_OVERLAPPED только для асинхронных уведомлений.

Если FileSystemWatcher основан на ReadDirectoryChangesW, ему необходимо:

  1. FILE_LIST_DIRECTORY в каталоге для мониторинга
  2. Привилегия SeBackupPrivilege, которая позволяет владельцу читать что угодно, минуя проверки доступа. Индикатором этого является флаг FILE_FLAG_BACKUP_SEMANTICS для CreateFile.

Это задокументировано в описании ReadDirectoryChangesW, указанном выше.

Другие вопросы по тегам