Windows ACL во время копирования проводника

Мне нужно предотвратить замену acl во время копирования папки, и я не знаю, как это сделать. У меня есть два репозитория, источник и место назначения с разными acl. Пользователи должны скопировать (с помощью файлового менеджера Windows) некоторые папки из источника в место назначения, но я хочу, чтобы скопированная папка наследовала ACL назначения. Теперь я вижу, что ACL копируются и поддерживаются от источника к месту назначения.

Как позволить проводнику Windows копировать папку из источника в место назначения, используя целевое наследование acl вместо исходного acl? Имейте в виду, что источник и пункт назначения находятся на одном сетевом томе.

Спасибо

редактировать

Я обнаружил, что если я копирую папки с использованием сетевых путей (например, \\server\share\folder), все работает так, как мне нужно (папка наследует целевой ACL), проблема заключается в том, что я использую подключенный сетевой том (например, z:\ папка \ папка).

1 ответ

Решение

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

Есть в основном два условия, когда это может быть не так:

  1. Ваши пользователи не копируют, а перемещают файлы и каталоги в пределах одной файловой системы. В этом случае 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.

  2. Вы изменили поведение по умолчанию в Windows Explorer для копирования прав доступа к файлу, установив ForceCopyAclwithFile в HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer ключ к 1,

Рекомендуемое чтение: MSKB 310316: как обрабатываются разрешения при копировании и перемещении файлов и папок

Другие вопросы по тегам