Запрет удаления пользовательских папок на файловом ресурсе

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

Для этого можно задать ACL на родительской папке, запрещающее операцию удаления. Создадим ее для Everyone, запретим операцию Delete, и применим это правило только для папок пользователей, т.е. не будем его распространять на более низкие уровни иерархии.

01

Однако, если на родительской папке у вас задано правило, например, для всех пользователей домена (Domain Users или Users), разрешающее им полный доступ Full Access (что в принципе не рекомендуется), то в этом случае пользователи сохранят возможность удаления папок, несмотря на запрещающее правило.

Почему так происходит? Казалось бы, запрещающее правило (Deny) обладает преимуществом перед разрешающими правилами (Allow), в случае, если оба типа правил применяются через наследование (это также справедливо, если оба правила указаны явно в DACL).

Просто в этом случае, пользователи получат право удаления папки вследствие наличия у них права Delete subfolders and files, которым они обладают в соответствии с DACL родительской папки.

02

Если же мы уберем права Full Control (которые по умолчанию включают в себя Delete subfolders and files) и оставим только Change, то пользователи потеряют право удаления папки, как мы и задумывали.

Рассмотрим еще один частный случай.

Если в списке контроля доступа родительской папки указано право Full Control для создателя папки, CREATOR OWNER для дочерних файлов и папок, то пользователь, создавший папку, автоматически получит полные права для этой папки.

03

Однако это не совсем так.

Удалить папку он все-таки не сможет, так как для него по-прежнему действует правило, запрещающее удаление, наследуемое от родительской папки.

Но ведь он обладает полными правами на папку, включая право Delete subfolders and files.

Так в том то и дело, что это право дает ему возможность удалять папки и файлы, входящие в созданную им, дочернюю, папку. А удалить саму дочернюю папку он не может, так как он не обладает правом Delete subfolders and files для родительской папки.

Следствием этого является также и то, что ему будет отказано и в праве переименования папки, так как процесс переименования фактически состоит из удаления объекта файловой системы и создания его с новым именем.

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

Здесь есть еще одна деталь.

Права Full Control, определенные для создателя папки фактически наследуются от родительской папки, также как и правило, запрещающее операцию удаления.

В этом случае можно считать, что оба правила определены на одном уровне – и правило Allow, и правило Deny наследуются от вышестоящих папок. В этом случае правило Deny обладает приоритетом по отношению к правилу Allow.

Однако, если пользователь, создавший папку добавит в ее DACL явную запись, разрешающую ему операцию удаления – а он сможет это сделать, так как обладает правом Full Control не эту папку – то он получит возможность как переименовать ее, так и удалить.

04

Происходит это потому, что явно указанные записи обладают приоритетом, перед унаследованными от вышестоящих папок.

То есть получается, что явно указанное разрешающее правило (Allow) переопределяет унаследованное запрещающее правило (Deny).

Если же мы укажем явно определенное правило Deny для этого каталога, то ото будет обладать приоритетом по отношению как к унаследованным правилам (Allow или Deny), так и по отношению к явно указанным правилам Allow.


Страницы в социальных сетях:

Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell


Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

w

Connecting to %s