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

16

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

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) и так далее. Пожалуйста, объясни.

Cheeso
источник

Ответы:

24

Из статьи 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 (удалить ребенка)
    • РА (читать атрибуты)
    • WA (запись атрибутов)

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

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

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

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

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

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

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

MaQleod
источник
1
Спасибо. Я грамотный в Google, и я могу читать. Но я хотел бы получить английское объяснение того, что значит иметь (I) RX. «наследование контейнера» - объясните, что это значит, и будьте конкретны в приведенном мною примере.
Cheeso
В этом случае вам понадобится ускоренный курс по разрешениям NTFS.
Surfasb
1
Если вы разбираетесь в Google, вы можете использовать Google «ntfs permissions», «ACL» и «File and реестра». Честно говоря, объяснение каждой строки в терминах непрофессионалов - это, по сути, переписывание всей статьи Technet для вас.
Surfasb
3
Год спустя ... Да. Намного лучше, спасибо. Что касается других, которые говорят: «Иди прочти», для этого и нужен Superuser, не так ли? Ответить на вопросы, на которые нет четкого ответа в другом месте.
Cheeso
1
Я на самом деле нашел (I)упомянутое в icacls /?Windows 7. У него также было два отдельных права «Удалить» - (D)ранее они были указаны в первом списке, а (DE)вместо этого во втором списке. См. Ss64.com/nt/icacls.html . Похоже, что вещи немного изменились с тех пор.
Mwfearnley