Coming from a .Net development background with not that much experience in (NTFS) file system security most of the rights in System.Security.AccessControl.FileSystemRights
are pretty clear to me.
However, FileSystemRights.Synchronize
is an exception. From the documentation:
Specifies whether the application can wait for a file handle to synchronize with the completion of an I/O operation.
Or as someone else explains it:
The Synchronize permission allows or denies different threads to wait on the handle for the file or folder and synchronize with another thread that may signal it. This permission applies only to multiple-threaded, multiple-process programs.
So my questions are:
To answer my own questions after doing some research:
[Synchronize] Allows or denies different threads to wait on the handle for the file or folder and synchronize with another thread that may signal it. This permission applies only to multithreaded, multiprocess programs.
These are the coarse permissions you can set in the permissions dialog and the FileSystemRights they include:
These are the granular permissions you can set in the advanced permissions dialog and the FileSystemRights they include:
Note that there are a few FileSystemRights that include other rights because of their bit mask. Those correspond to the rights you can set in the coarse permissions dialog. The FileSystemRights value and the other values they include:
There are also a few FileSystemRights that share the same value and are used interchangeably. They are: