Как запретить удаление папки, но дать доступ внутри?
Есть сетевая папка M:\Public, и в ней лежат папки разных отделов — например: Accounting, Finance, HR, Front Office и т.д.
Все пользователи находятся в группе GRP-Users.
Хочу настроить так, чтобы:
Эти папки (например, Accounting) можно было видеть и открывать
Внутри них можно было работать — создавать, редактировать, удалять файлы и подпапки
Но нельзя было удалить саму папку отдела (например, Accounting)
И ещё — нельзя было сохранять файлы и папки рядом с ними, то есть в корневой папке M:\Public
Что пробовал:
Настраивал вручную через свойства папки (Security → Advanced)
Отключал наследование
Добавлял Deny на Delete, Delete subfolders and files
Применял права только к подэлементам (Subfolders and files only)
Пробовал PowerShell-скрипты через AddAccessRule() и Set-Acl()
Результаты:
Либо папка пропадает у пользователей
Либо внутри ничего нельзя редактировать
Либо всё работает, но папку можно удалить
Или вообще доступ полностью ломается
Я уже перепробовал всё, что смог найти, но ничего не помогает добиться нужного результата.
Если кто-то реально настраивал такую схему и может подсказать рабочее решение — буду очень благодарен!
SunTechnik, ой ладно, я вообще иногда целое слово невпопад могу написать и не заметить, потому что мысль в момент написания улетела в другую сторону, а пальцы послушно последовали за мыслью. И никакие глюки т9 и иже с ними не нужны.
Добрый день Дмитрий, благодарю за ответ, хотелось бы узнать вы скриптом делали? просто я еще джуниор в этой области я запрашивал код скрипта через ChatGPT но это не сработало
Одним и двумя правилами здесь не обойтись
Для корневой папки(public) настраивается только чтение и отключается наследование (через расширенные права доступа)
Для каждой из папок внутри настраивается нужный доступ чтение, запись, изменение прав и тд
Для автоматизации можно настроить на однй папке руками и запросить полученные права утилитой icacls, после чего распространить с помощью этой же утилиты на другой каталог
Кстати если пользователь входит в несколько групп и эти группы назначены на один контейнер можно столкнутся с проблемой применения то одних то других прав так что группу все лучше удалить
Zerg89 еще на раз сталкивался с тем, что даже после запроса прав через icacls и попыткой навесить такие же права на другие папки вылетают ошибки. Часто это связано то с пробелами в названиях папок, то еще с чем. Причем можно 2-3 раза задавать права и будет вылетать ошибка, на третий-пятый раз - сработает.
Andrey Lutsenko,скорее всего это связано с тем что если smb контейнер уже подключен он подключен с правами которые были выданы при подключении(если точнее ключ kerberos имеет определённые права и изменяются только при его перегенрации) и меняются они после перелогина или истечения срока ключа(по умолчанию время жизни ключа 10 часов в windows)
Zerg89 Спасибо за ответ но я это уже пробывал почему то у меня исчезает сама папка Accounting например, удалить группу вы имеете ввиду GRP-Users удалить?
Maten, исчезать папка может только по причине отсутствия прав на чтение в каталоге выше, и скорее всего из-за какого-то правила deny которое имеет приоритет выше чем accept.
Удалить группу я имел ввиду ( даже не группу а мнимый обьект "Все")
Я бы посоветовал просто для каждой папки сделать группу доступа(группы, если есть разница в правах доступа пользователей, например одним только чтение, другим чтение/запись и тп для каждого типа прав своя группа) и добавлять пользователей которые должны иметь определённый доступ(без пересечения пользователей в группах в одном котейнере) все остальные группы удалить
Не использовать deny, он нужен в очень редких случаях, когда пользователю нужно дать доступ к папкам внутри, но не ко всем или точечно запретить одному пользователю определённый тип действия, но и для этого тоже желательно делать отдельную группу с другими правами доступа где deny не используется
Разобраться с наследованием прав, что от чего наследуется, возможно у вас наследование идёт от ещё более вышестоящего контейнера
В этом плане у Синолоджи проще. Если на папке нет разрешения для OU или юзера - то её и не увидит никто, кроме тех, кому можно эту папку видеть. Не надо городить многоуровневых доступов.