9

У меня есть сценарий, включающий файловый сервер Windows, где "владелец" хочет выдать разрешения группе пользователей следующего вида:

  • \\server\dir1\dir2\dir3: чтение, запись и выполнение
  • \\server\dir1\dir2: нет разрешений
  • \\server\dir1: нет разрешений
  • \\server: читать и выполнять

Насколько я понимаю (Обновление: весь этот абзац неправильный!), Это невозможно сделать, поскольку разрешение « Read & Execute должно быть предоставлено всем родительским каталогам в цепочке каталогов, чтобы операционная система могла "видеть". «Дочерние каталоги и доберись до них. Без этого разрешения вы даже не сможете получить маркер контекста безопасности при попытке доступа к вложенному каталогу, даже если у вас есть полный доступ к подкаталогу.

Мы ищем способы обойти это, не перемещая данные из \\server\dir1\dir2\dir3 в \\server\dir4 .

Один из обходных путей, о котором я подумал, но в котором я не уверен, сработает ли он, - это создание какой-то ссылки или соединения \\server\dir4 который является ссылкой на \\server\dir1\dir2\dir3 . Я не уверен, какой из доступных параметров (если таковые имеются) будет работать для этой цели, если у пользователя нет разрешения на Read & Execute на \\server\dir1\dir2 или \\server\dir1 , но, насколько я знаю, варианты таковы:

  • Символическая ссылка NTFS,
  • Junction,
  • Жесткая ссылка.

Итак, вопросы:

  • Подходят ли какие-либо из этих методов для достижения моей цели?
  • Существуют ли другие способы ссылки или косвенной ссылки на каталог, которые я не перечислил выше, которые могут подойти?
  • Существуют ли какие-либо прямые решения, которые не включают предоставление права на Read & Execute \\server\dir1 или \\server\dir2 но по-прежнему разрешают доступ к \\server\dir1\dir2\dir3?

4 ответа4

12

Удивительно, но если у человека есть полный путь к подпапке, для которой у него есть как минимум права R, ему не требуются разрешения ни на одну из родительских папок, даже на обход. Они могут просто получить к нему доступ с помощью UNC. (Конечно, они должны иметь разрешения на чтение для общего ресурса; только не для папок выше уровня, к которому они хотят получить доступ).

Я не поверил, когда мне сказали, но тестирование доказывает это.

Это противоречит тому, что я думал о разрешениях в мире Windows, и я подозреваю, что это станет сюрпризом для многих.

\ Сервер \ folder1 \ folder2 \ folder3

Если для Бильбо нет никаких разрешений для папки 1 и для папки 2, но Бильбо должен изменить (например) для папки 3, то \server \folder1 \folder2 \folder3 сразу же доставит его туда, нет проблем.

11

Вы ошибаетесь в своем первоначальном предположении, что делает остальную часть вашего вопроса тоо.

Минимальное разрешение, которое потребуется пользователю для dir1 и dir2 - Traverse Directory . Это, скорее всего, будет проблематично для ваших пользователей, поэтому я бы порекомендовал Traverse Directory и List Folders . Они смогут перемещаться по двум верхним каталогам и попадать в dir3 где у них больше прав, но они даже не увидят, какие файлы существуют в двух верхних каталогах.

Такие разрешения, как « Read & Execute и « Modify представляют собой наборы отдельных разрешений. Это первое, что вы видите, потому что они чаще всего используются. Если вам нужно очень детализировать (например, в этой ситуации), нажмите кнопку « Advanced и найдите опции, перечисленные там.

1

Одно из решений, аналогичное MDMarra, устанавливает разрешения NTFS следующим образом:

  1. dir1: Предоставить содержимое папки списка (Переместить папку / выполнить файл, Показать папку / прочитать данные, Чтение атрибутов, Чтение расширенных атрибутов, Чтение разрешений)
  2. НО выберите эту папку только для применения к раскрывающемуся списку
  3. dir2: Предоставить содержимое папки списка и применить только к этой папке
  4. dir3: предоставьте нужные разрешения на чтение / запись и примените к этой папке только подпапки и файлы или только подпапки и файлы

В результате пользователь / группа может прочитать каждую отдельную родительскую папку и перейти к дочерней папке без каких-либо других папок или файлов.

0

Так что я тестировал это в следующей среде, так как хотел получить окончательный, проверенный ответ с минимально необходимыми разрешениями для простого просмотра папок с помощью просмотра (то есть с помощью проводника Windows). Вот результаты для тех, кто хочет все закрыть.

Я еще не проверял это в производстве, чтобы увидеть, есть ли какие-то странные побочные эффекты от сравнения "стандартного" хорошо проверенного шаблона прав на обход

  • Папка Траверс
  • Папка списка
  • Читать атрибуты
  • Читать Ext. Атрибуты
  • Разрешения на чтение

... что в основном является обычным разрешением "Чтение и выполнение", ограниченным "Эта папка". Тем не менее, мелкомасштабное тестирование до сих пор было вполне приемлемым для пользователей, которые просто перемещали, копировали и удаляли файлы на сервере, а пользователи полностью отрабатывали копии документов на сервере и т.д.


Среда:

  • Сервер: Windows 2008 R2 - Групповая политика практически не изменилась, ничего не изменилось в отношении прав пользователя, настроен как контроллер домена, DNS, интегрированный в AD, очень стандартная / базовая настройка.
  • Клиент: Windows 7 с пакетом обновления 1 (SP1) - чистая установка на ВМ, перезапускаемая между любыми изменениями, чтобы каждый раз полностью восстанавливаться соединение с сервером.
  • Обе установки были обновлены как минимум до конца 2017 года, поэтому, скорее всего, это актуально для всего, что связано с разрешениями, которые очень запутаны в данный момент на временной шкале Windows.
  • Это был доступ к общей папке, смонтированной как постоянный сетевой диск (\server\share -> S:) в виртуальной машине. Права доступа были: «Чтение + изменение» для группы «Прошедшие проверку», которая охватывает тестового пользователя и всех остальных, которым в какой-то момент может понадобиться доступ.
  • После каждого изменения я перезагружал виртуальную машину, открывал Проводник и просто просматривал общий ресурс, следуя по пути, который, как я знал, у тестового пользователя были эти права доступа по сравнению с теми, которые у него не были.

Результаты:

  • Требуется в корневой папке: ListFolder-ReadData + ReadAttributes (2x разрешения)
  • Требуется в подпапках: ListFolder-ReadData (1x разрешение)
  • Необязательно: TraverseFolder - ExecuteFile

    -> Это необязательное разрешение имеет значение только в том случае, если права пользователя обходной проверки хода явно запрещены, так как оно включено по умолчанию в 99% случаев. Иными словами, включенное право пользователя "Обход обхода" (предоставляется в групповой политике, а не в разрешениях файлов / папок NTFS) полностью устраняет эту привилегию и эффективно делает эту привилегию включенной везде по умолчанию. Примечание: я не проверял, чтобы убедиться, что явное отрицание этого права, в свою очередь, помешает действию права на проверку обхода обхода в этом конкретном случае, но это может произойти).

Дополнительная информация: Право пользователя "Обход обхода" позволяет кому-либо пассивно переходить к подпапке, сколь угодно глубокой, к которой у него есть доступ напрямую (т. Е. Права доступа устанавливаются для этого файла / папки, но не обязательно где-либо еще дальше). путь к файлу).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .