Предоставить доступ к подкаталогу без предоставления доступа к родительским каталогам

12

У меня есть сценарий, включающий файловый сервер 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?
allquixotic
источник
Это возможно. Пользователь увидит каталог, но если ему не дано разрешение на чтение, он вообще не сможет увидеть содержимое каталога, достаточно прост в настройке.
Ramhound
Это тоже был мой вопрос. Спасибо за обсуждение. И для обновления вашего вопроса, чтобы сразу отразить, что ваше предположение было неверным.
Тайрон

Ответы:

15

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

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

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

MDMarra
источник
Отличная информация (2)! Но есть кое-что, что я не догнал: «Это, скорее всего, будет проблематично для ваших пользователей». Почему это было бы проблематично? Называть это довольно просто в том смысле, что «Траверс» кажется единственным необходимым разрешением. Какие проблемы следует ожидать пользователям?
Тайрон
12

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

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

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

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

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

embeetee
источник
Это работает , когда folder1имеет разрешение на доступ и разрешение NTFS установлены на folder3Так что это \\server\c$\folder1\folder2\folder3не будет работать.
user2304170
1
Чтобы добавить к этому ответу, эта неявная «способность» перемещать родительские папки во вложенную папку, какой бы глубокой она ни была, к которой у вас есть доступ, предоставлена ​​правом пользователя «Проверка обхода», предоставленным в групповой политике по умолчанию для большинства / всех пользователей. в большинстве случаев. См. Itprotoday.com/management-mobility/…, поскольку я не могу вставить достаточно этого здесь, чтобы захватить список того, что получает разрешение при каких обстоятельствах.
Ладья
Обходная обходная проверка как право также присутствует в качестве повышения производительности NTFS, позволяющего пропустить проверку разрешений каждой папки в дереве на пути к открытию конечной желаемой папки / файла, поэтому не рекомендуется удалять ее, если вы не знаете, что вам нужно тот чрезвычайно высокий уровень безопасности.
Ладья
1

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

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

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

DrewsWiz
источник
Это не похоже на ответ MDMarra, то есть ответ MDMarra, изложенный более подробно.
Скотт
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) полностью устраняет эту привилегию и эффективно делает эту привилегию включенной везде по умолчанию. Примечание. Я не проверял, не приведет ли явное отрицание этого права, в свою очередь, к прекращению действия права «Проверка обхода» в данном конкретном случае, но это может произойти).

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

ладья
источник