Windows ACL во время копирования проводника
Мне нужно предотвратить замену acl во время копирования папки, и я не знаю, как это сделать. У меня есть два репозитория, источник и место назначения с разными acl. Пользователи должны скопировать (с помощью файлового менеджера Windows) некоторые папки из источника в место назначения, но я хочу, чтобы скопированная папка наследовала ACL назначения. Теперь я вижу, что ACL копируются и поддерживаются от источника к месту назначения.
Как позволить проводнику Windows копировать папку из источника в место назначения, используя целевое наследование acl вместо исходного acl? Имейте в виду, что источник и пункт назначения находятся на одном сетевом томе.
Спасибо
редактировать
Я обнаружил, что если я копирую папки с использованием сетевых путей (например, \\server\share\folder), все работает так, как мне нужно (папка наследует целевой ACL), проблема заключается в том, что я использую подключенный сетевой том (например, z:\ папка \ папка).
1 ответ
Поведение, которое вы описываете как желаемое, фактически является стандартным для всех версий Windows. Скопированные файлы и каталоги воссоздаются в месте назначения, наследуя разрешения папки назначения.
Есть в основном два условия, когда это может быть не так:
Ваши пользователи не копируют, а перемещают файлы и каталоги в пределах одной файловой системы. В этом случае ACL файловой системы не изменяются, поскольку операция "перемещение" просто перезаписывает указатели на место назначения в файловой системе и ничего не делает с ACL (которые хранятся в другом атрибуте). Это поведение можно изменить, установив
MoveSecurityAttributes
(DWORD) значение вHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer
ключ к0
на всех ваших клиентских машинах. Обратите внимание, что для работы MoveSecurityAttributes на более новых версиях Windows (в Windows Vista / Server 2008) необходимо установить исправление, как описано в MS KB 2617058: раздел реестра "MoveSecurityAttributes" не работает в Windows 7, в Windows Vista, в Windows Server 2008 или Windows Server 2008 R2.Вы изменили поведение по умолчанию в Windows Explorer для копирования прав доступа к файлу, установив
ForceCopyAclwithFile
вHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
ключ к1
,
Рекомендуемое чтение: MSKB 310316: как обрабатываются разрешения при копировании и перемещении файлов и папок