Объясните вывод ICACLS.EXE, строка за строкой, элемент за элементом

38798
Cheeso

Что это значит:

C:\foo\> icacls . . NT AUTHORITY\IUSR:(M) BUILTIN\IIS_IUSRS:(M) BUILTIN\IIS_IUSRS:(OI)(CI)(M) NT AUTHORITY\IUSR:(OI)(CI)(M) BUILTIN\IIS_IUSRS:(I)(OI)(CI)(RX) NT AUTHORITY\IUSR:(I)(OI)(CI)(RX) NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F) BUILTIN\Administrators:(I)(OI)(CI)(F) 

Я думаю, что первое означает, что идентификатор пользователя получает разрешения на изменение каталога, что означает, что пользователь может создавать файлы, обновлять файлы или удалять файлы. Правильно? Что такое пользователь "NT AUTHORITY \ IUSR"? Это действительно один идентификатор пользователя? Это идентификатор пользователя IIS по умолчанию?

хорошо, вторая строка, я думаю, относится к группе. Он получает те же разрешения.

Как насчет всех этих строк с (I) и (OI) и так далее. Пожалуйста, объясни.

13

1 ответ на вопрос

21
MaQleod

Из статьи Microsoft о ICACLS

Записи - это пользователи и группы, относящиеся к этому файлу (DOMAIN \ USER или GROUP), перечисленные разрешения:

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

icacls сохраняет канонический порядок записей ACE как:

  • Явные опровержения
  • Явные гранты
  • Унаследованные отказы
  • Унаследованные гранты

Пермь - это маска прав, которую можно указать в одной из следующих форм:

  1. Последовательность простых прав:
    • F (полный доступ)
    • M (изменить доступ)
    • RX (доступ для чтения и выполнения)
    • R (доступ только для чтения)
    • W (доступ только для записи)
  2. Список через запятую в скобках конкретных прав:
    • D (удалить)
    • RC (контроль чтения)
    • WDAC (напиши DAC)
    • WO (написать владельцу)
    • S (синхронизировать)
    • AS (система безопасности доступа)
    • MA (максимально допустимый)
    • GR (общее чтение)
    • GW (общая запись)
    • GE (универсальное исполнение)
    • GA (универсальный все)
    • RD (читать каталог данных / списка)
    • WD (запись данных / добавление файла)
    • AD (добавить данные / добавить подкаталог)
    • REA (читать расширенные атрибуты)
    • WEA (написать расширенные атрибуты)
    • X (выполнить / пройти)
    • DC (удалить ребенка)
    • RA (читать атрибуты)
    • WA (запись атрибутов)

Права наследования могут предшествовать любой пермской форме, и они применяются только к каталогам:

  • (OI) : наследование объекта
  • (CI) : контейнер наследуется
  • (IO) : наследовать только
  • (NP) : не размножать наследовать
  • (I) : разрешение, унаследованное от родительского контейнера

Для файлов маски разрешений более или менее говорят сами за себя: Rозначает, что вы можете прочитать файл, разрешить Xего выполнение (как программу) и так далее.

Для других типов объектов вам нужно будет просмотреть MSDN:

Право наследования на английском языке:

  • (I) «Унаследовано»: этот ACE был унаследован от родительского контейнера.
  • (OI) «Объектное наследование»: этот ACE будет наследоваться объектами, помещенными в этот контейнер.
  • (CI) «Наследование контейнера»: этот ACE будет наследоваться подконтейнерами, размещенными в этом контейнере.
  • (IO)«Наследовать только»: этот ACE будет наследоваться (см. OIИ CI), но не относится к самому объекту.
  • (NP)«Не распространять»: этот ACE будет наследоваться объектами и субконтейнерами на один уровень глубины - он не будет применяться к вещам внутри субконтейнеров.

Для файловой системы «контейнер» означает папку, а «объект» означает файл, но помните, что списки ACL могут быть установлены для многих других типов объектов, не все из которых имеют понятие «контейнеры».

благодарю вас. Я грамотный в Google, и я могу читать. Но я хотел бы получить английское объяснение того, что значит иметь (I) RX. «наследование контейнера» - объясните, что это значит, и будьте конкретны в приведенном мною примере. Cheeso 13 лет назад 1
В этом случае вам понадобится ускоренный курс по разрешениям NTFS. surfasb 13 лет назад 0
Если вы разбираетесь в Google, вы можете использовать Google «ntfs permissions», «ACL» и «File and реестра». Честно говоря, объяснение каждой строки в терминах непрофессионалов - это, по сути, переписывание всей статьи Technet для вас. surfasb 13 лет назад 0
@Cheeso: [лучше сейчас?] (Http://superuser.com/posts/322431/revisions) grawity 13 лет назад 0
* Год спустя ... * Да. Намного лучше, спасибо. Что касается других, которые говорят: «Иди прочти», для этого и нужен Superuser, не так ли? Ответить на вопросы, на которые нет четкого ответа в другом месте. Cheeso 12 лет назад 2
Странно, что `(I)` не упоминается в статье TechNet. Есть ли официальная (или полуофициальная) документация на него? mwfearnley 7 лет назад 0
На самом деле я обнаружил, что `(I)` упоминается в `icacls /?` В Windows 7. Он также имел два отдельных права на "Удалить" - `(D)` ранее был включен в первый список, с `(DE)` вместо второй список. См. Https://ss64.com/nt/icacls.html. Похоже, что вещи немного изменились с тех пор. mwfearnley 7 лет назад 0