Доступ - как запретить удаление папки

Аватара пользователя
megabyte1

Доступ - как запретить удаление папки

Сообщение megabyte1 »

как запретить удаление папки? но внутри папки оставить разрешённым удаление подпапок.

почему я ставлю на папку разрешения в "безопасности" - запретить удаление, "всем", "только для этой папки" (а не для подпапок и файлов), а от администратора - удалить могу?

у "система" и "администраторы" - полный доступ ("для этой папки, подпапок и файлов"), но "элементы запрета имеют более высокий приоритет, чем элементы разрешения".
Аватара пользователя
megabyte1

Re: Доступ - как запретить удаление папки

Сообщение megabyte1 »

на самом деле, не так, а так:

https://mskb.pkisolutions.com/kb/152763



Цитата:



Windows NT supports a hidden permission called File Delete Child (FDC) on NTFS volumes. Users who have full control permission on a volume or directory also have the FDC permission. This permission allows a user to delete files at the root level of the directory where they have full control, even if they do not have any permissions on the specific file itself.




Цитата:



I have found another difference.



Symbolic Link - Link's permissions only affect delete/rename operations on the link itself, read/write access (to the target) is governed by the target's permissions

Junction - Junction's permissions affect enumeration, revoking permissions on the junction will deny file listing through that junction, even if the target folder has more permissive ACLs



вместо junction - делаем symlink, запретить доступ, "Все", "Полный доступ", "Для этой папки, её подпапок и файлов", а потом меняем владельца на non-admin, и non-user



а теперь - повторить, только с обычной папкой.
Аватара пользователя
megabyte1

Re: Доступ - как запретить удаление папки

Сообщение megabyte1 »

владельца менял на администраторы, система, и обратно на пользователя.



Аватара пользователя
megabyte1

Re: Доступ - как запретить удаление папки

Сообщение megabyte1 »

Владельца смените на соответствующей вкладке. Не уверен, правда, что тогда останется доступ к содержимому папки.
Аватара пользователя
bredych

Re: Доступ - как запретить удаление папки

Сообщение bredych »

Цитата megabyte1:



владельца менял на администраторы, система, и обратно на пользователя.
Доступ - как запретить удаление папки




на другого пользователя. НЕ себя.
Аватара пользователя
bredych

Re: Доступ - как запретить удаление папки

Сообщение bredych »

непустая папка - тоже не работает.

и на другом ПК - тоже.
Аватара пользователя
megabyte1

Re: Доступ - как запретить удаление папки

Сообщение megabyte1 »

непустая папка - тоже не работает.

и на другом ПК - тоже.
Аватара пользователя
megabyte1

Re: Доступ - как запретить удаление папки

Сообщение megabyte1 »

Пощупал сейчас всю эту тему более детально... Короче, неудобный это вариант, забейте на него. Сделать папку неудаляемой можно только при условии, что и объекты внутри нее будут неудаляемыми. В итоге вам придется либо вручную каждые N месяцев снимать запрет и чистить мусор, либо смириться с бесконечным ростом папки.



Если так интересно, то все упирается в галочку "Содержание папки / чтение данных". Если ее снять, то удалить папку нельзя будет. Но и доступа внутрь тогда не будет. Как только мы эту галочку обратно ставим, доступ внутрь папки снова появляется - и вместе с доступом появляется возможность удалить папку. Что очень странно, поскольку разрешение на чтение содержимого объекта не должно приводить к возможности удаления этого самого объекта. А оно приводит. Вывод: баг.
Аватара пользователя
megabyte1

Re: Доступ - как запретить удаление папки

Сообщение megabyte1 »

спас.

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

но если запретить "чтение/запись разрешений", и "смену владельца", тогда, получается, сам не отменишь.

и он может выдавать ошибки на установку разрешений, но всё равно изменяется.

кто может отменить разрешения, если всем запрещено?



а если сделать не с папкой, а с junction, то не работает.

в принципе, и не важно, но пригодится.



если интересно, то дело было не так, а так:




Цитата:



If you need to reclaim this space, your safest bet is to avoid "deleting" anything, but to instead, move this folder and all it's files.



Once moved, in order to "link" the old mount point/location (in most cases C:\ProgramData\Package Cache\), you simply create a directory junction to it.




Цитата:



Did the trick with moving to another drive and making a junction. Running VS2015 SP3 installer today, the installer caused the junction to devolve to a normal directory (possibly when uninstalling an older version of some component, it recursed through "empty" parent directories removing them -- there are known problems with junctions and naive empty directory tests). So it placed new components in C:\ProgramData\Package Cache and then failed to find items in the new location where the junction formerly pointed. Just a warning to future readers the junction may need to be re-established.




Цитата:



As a more permanent fix, use NTFS permissions and deny "delete" permission on the junction itself.



но это не работает
Ответить

Вернуться в «Microsoft Windows 7»