В процессе очередной заточки очередного самопального инструмента возник вопрос “а чего там с правами на файлы/папки?”. Какие права весомее, что в куда входит? Если кратко – нате вам ссылку на официальную документацию. Остальные – велком под кат.
В виде нормально читаемого дерева представить всё здесь не выйдет, поэтому будет отдельно дерево и отдельно описание прав.
- FullControl
- Modify
- ReadAndExecute
- Read
- ReadData / ListDirectory
- ReadExtendedAttributes
- ReadAttributes
- ReadPermissions
- ExecuteFile / Traverse
- Read
- Delete
- Write
- WriteData / CreateFiles
- AppendData / CreateDirectories
- WriteExtendedAttributes
- WriteAttributes
- ReadAndExecute
- DeleteSubdirectoriesAndFilesTraverse
- ChangePermissions
- TakeOwnership
- Synchronize
- Modify
Право | Вес | Описание |
FullControl | 2032127 | Указывает право на полный контроль над папкой или файлом, а также изменение правил контроля доступа и аудита. Это значение представляет право делать что-либо с файлом и является сочетанием всех прав в этом перечислении. |
Modify | 197055 | Указывает право на чтение, запись, содержимое папки списка, удаление папок и файлов, а также запуск файлов приложений. Это право включает ReadAndExecute, Write и Delete. |
ReadAndExecute | 131241 | Указывает право открывать и копировать папки или файлы как доступные только для чтения, а также запускать файлы приложений. Это право включает в себя Read и ExecuteFile. |
Read | 131209 | Указывает право открывать и копировать папки или файлы как доступные только для чтения. Это право включает ReadData, ReadExtendedAttributes, ReadAttributes и ReadPermissions. |
ReadData | 1 | Указывает право на открытие и копирование файла или папки. Это не включает право на чтение атрибутов файловой системы, расширенных атрибутов файловой системы или правил доступа и аудита. |
ReadExtendedAttributes | 8 | Указывает право на открытие и копирование расширенных атрибутов файловой системы из папки или файла. Например, это значение указывает право на просмотр сведений о авторе и содержимом. Это не включает право на чтение данных, атрибуты файловой системы или правила доступа и аудита. |
ReadAttributes | 128 | Указывает право на открытие и копирование атрибутов файловой системы из папки или файла. Например, это значение указывает право на просмотр даты создания или изменения файла. Это не включает право на чтение данных, расширенные атрибуты файловой системы или правила доступа и аудита. |
ReadPermissions | 131072 | Указывает право на открытие и копирование правил доступа и аудита из папки или файла. Это не включает право на чтение данных, атрибутов файловой системы и расширенных атрибутов файловой системы. |
ExecuteFile | 32 | Указывает право запуска файла приложения. |
Delete | 65536 | Указывает право на удаление папки или файла. |
Write | 278 | Указывает право создавать папки и файлы, а также добавлять или удалять данные из файлов. Это право включает WriteData, AppendData, WriteExtendedAttributes и WriteAttributes. |
WriteData | 2 | Указывает право на открытие и запись в файл или папку. Это не включает право открывать и записывать атрибуты файловой системы, расширенные атрибуты файловой системы или правила доступа и аудита. |
AppendData | 4 | Указывает право добавлять данные в конец файла. |
WriteExtendedAttributes | 16 | Указывает право на открытие и запись расширенных атрибутов файловой системы в папку или файл. Это не включает возможность записи данных, атрибутов или правил аудита и доступа. |
WriteAttributes | 256 | Указывает право на открытие и запись атрибутов файловой системы в папку или файл. Это не включает возможность записи данных, расширенных атрибутов или правил доступа и аудита. |
ListDirectory | 1 | Указывает право на чтение содержимого каталога. |
CreateFiles | 2 | Указывает право на создание файла. Для этого права требуется значение Synchronize. |
CreateDirectories | 4 | Указывает право на создание папки Это право требует значения Synchronize. |
Traverse | 32 | Указывает право на перечисление содержимого папки и запуск приложений, содержащихся в этой папке. |
DeleteSubdirectoriesAndFiles | 64 | Указывает право удалить папку и все файлы, содержащиеся в этой папке. |
ChangePermissions | 262144 | Указывает право на изменение правил безопасности и аудита, связанных с файлом или папкой. |
TakeOwnership | 524288 | Указывает право изменить владельца папки или файла. Обратите внимание, что владельцы ресурса имеют полный доступ к такому ресурсу. |
Synchronize | 1048576 | Указывает, может ли приложение ожидать синхронизации дескриптора файла с завершением операции ввода-вывода. Это значение устанавливается автоматически при предоставлении доступа и автоматическом исключении при запрете доступа. |
Программисты, вероятно, уже заметили, что фактические права прекрасно считаются по битам 3-байтного значения.