Я пытаюсь написать сценарий для очистки списков управления доступом Samba с моего сервера Ubuntu. Я использовал smbcacls
для чтения разрешений на файл / папку. Когда у пользователя есть только RX
или WX
разрешений, это нормально, но как только у пользователя есть что-то помеченное как «особое разрешение», оно отображается в шестнадцатеричном виде.
Пример:
user@machine: ~$ smbcacls //server/share folder_1/ --authentication=.credentials
Печать:
REVISION:1
CONTROL:SR|PD|DP
OWNER:SERVER\Admin
GROUP:SERVER\everyone
ACL:SERVER\Admin:ALLOWED/0x0/0x001e01ff
В 0x0
связано с наследованием, но что это значит 0x001e01ff
значит? Похоже на бинарные флаги 00000000111100000000111111111
, но я не могу найти никакой документации о том, что они означают.
Какие-нибудь советы / ссылки на документацию?
значения SDDL задокументированы, например Вот: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/f4296d69-1c0f-491f-9587-a960b292d070
значение 0x001F01FF
например, "полный доступ к файлу"
0x001F01FF = 0x001E01FF + 0x00010000 (удаление-> см. Ссылку). это означает, что в результатах вычислений отсутствует разрешение на удаление. побитовые разрешения создаются путем добавления атомных шестнадцатеричных разрешений
Ответ Фалько обычно будет более полезным, но для полноты картины отдельные флаги разрешений для файлов задокументированы в Константы прав доступа к файлам в Центре разработки Windows, а стандартные и общие флаги задокументированы в ACCESS_MASK.
Разбивая 0x001E01FF, получаем:
А также
Но у нас заметно нет