3

У меня есть каталог с общим доступом через CIFS с Windows 7 "сервер". Нет домена: просто рабочая группа.

Мои клиенты получают доступ к этому каталогу через локальную сеть через учетные записи "Стандартный пользователь" (без "Администратор") на сервере. Они используют этот общий ресурс для "личного хранения", поэтому им нужно полностью создавать / редактировать / удалять все, что находится внутри него.

Проблема в том, что я создаю каталог на стороне сервера. Этот отдельный элемент никоим образом не должен редактироваться, просто читаемый / просматриваемый / доступный (давайте сосредоточимся на самом каталоге, а не на файле внутри (иногда их нет)).

Я работаю с разрешениями NTFS: я удалил наследование из директории must-not-delete-, чтобы я мог работать с ее разрешениями.

Я удалил учетную запись клиента, и на этом этапе только СИСТЕМА, администраторы и я присутствуем с их разрешениями. На этом этапе клиенты не могут ни удалить, ни открыть папку.

Если я добавлю правило "полный контроль" Запретить, ничего не изменится (как и ожидалось).

Но если я изменю это правило и разрешу просто «Список папок / чтение данных», оставив все остальные в «Запретить» ... пользователь может удалить папку !?!?!?

как это возможно? что я недопонимаю?

Примечание: я дважды проверил один файл, а не каталог: та же проблема!

Это вывод Icacls:

НЕ ДОЛЖЕН УДАЛИТЬ NT AUTHORITY\SYSTEM:(OI)(CI)(F) muletto\Zane:(OI)(CI)(F) BUILTIN\ Администраторы:(OI)(CI)(F) muletto\ myNetworkUser:(OI)(Cl)(RX)

Успешно обработано 1 файлов; Не удалось обработать 0 файлов

1 ответ1

2

ХОРОШО. Я могу подтвердить, что пользователь может удалить файл (или удалить пустой каталог), не имея права на запись в этот файл / каталог, если у него есть доступ Delete Child к родительскому каталогу. Если я знал об этом раньше, я забыл об этом, но это задокументированное поведение, например, см. KB101651.

Есть (как минимум) три способа решения вашей проблемы:

  • Предоставьте пользователям доступ для изменения вместо полного доступа к родительскому каталогу. Единственными различиями между Full Control и Modify являются право на удаление дочернего элемента (что позволяет пользователю удалять дочерние объекты) и право на запись в ЦАП (что позволяет пользователю изменять разрешения для объекта, даже если они не являются его владельцем).

  • Установите разрешения для общего ресурса, чтобы изменить вместо полного. Это должно иметь тот же эффект, но повлияет только на пользователей сети, а не на интерактивных пользователей. Одним из побочных эффектов является то, что пользователи не могут изменять разрешения даже для своих собственных файлов.

  • Установите флаг только для чтения в дочернем файле / каталоге. Документация по этому вопросу неясна, но мое тестирование (Windows 7) показывает, что Delete Child не позволяет удалять файлы или удалять каталоги с установленным флагом только для чтения. Это также не позволяет вам сбросить флаг только для чтения. Обратите внимание, что графический интерфейс Explorer подразумевает, что флаг только для чтения не влияет на каталоги; на самом деле это предотвращает удаление каталога. (Это не препятствует записи новых файлов в каталог.) Приложение: флаг только для чтения не запрещает перемещение каталога.

Другие заметки:

  • Вы можете явно отказать в праве на удаление дочернего элемента в родительский каталог, но если у пользователя есть полный доступ к родительскому каталогу, он может удалить запись об отказе.

  • Право на удаление дочернего элемента в родительском каталоге не позволяет пользователям удалять файлы из дочернего каталога или удалять дочерний каталог, если он не пуст. Приложение: оно позволяет пользователям перемещать дочерний каталог.

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