Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается решение проблемы, из-за которой унаследованные разрешения не обновляются автоматически при перемещении папок.
Исходный номер базы знаний: 320246
Симптомы
Список контроль доступа (ACL) может отображать разрешения, помеченные как унаследованные от родительского элемента, но сам родитель может не иметь этих разрешений в списке ACL. Этот симптом может возникать, даже если наследование по-прежнему включено. Любое последующее изменение списка ACL родительской папки приводит к тому, что ACL дочернего элемента будет получать унаследованные разрешения. Кроме того, любая попытка изменить ACL дочернего элемента приводит к применению наследования (если изменение не помечает ACL как защищенное от наследования). Это поведение может быть удивительно, если состояние наследования не было отмечено перед началом редактирования ACL.
Примечание.
Это поведение не может быть вызвано перемещением папки при запуске компьютера под управлением Windows Vista. Теперь операция перемещения работает, так как папка или файл могут наследовать ACL целевой папки или файла. Папка или файл также имеют разрешения, помеченные как унаследованные от родительского элемента. Это изменение дизайна с Windows XP на Windows Vista и Windows Server 2008.
Причина
Это поведение может быть вызвано перемещением папки. При перемещении папки ACL не изменяется, а унаследованные разрешения не обновляются. Обратите внимание, что перемещение в контексте этой статьи всегда означает перемещение в одном томе.
При перемещении файла или папки ACL также перемещается и не изменяется каким-либо образом. Даже если для этой папки включено наследование, унаследованные разрешения не обновляются автоматически. Список ACL будет обновлен при следующем изменении разрешений, и это заставляет родителя распространять свои разрешения.
Это поведение также может быть вызвано следующими причинами:
Установка разрешений родительской папки с помощью CACLS не распространяется на вложенные папки. Параметр /T не означает распространять права с помощью наследования, а перезаписывать все списки управления доступом.
Задание разрешений родительской папки с помощью API, который не распространяется автоматически наследование (например, Adssecurity.dll).
Восстановление из резервной копии в другое расположение.
Решение
Чтобы избежать непредвиденных изменений разрешений, задайте ACL файла или папки защищенным перед перемещением при сохранении параметров. В противном случае вручную обновите ACL перемещаемого файла или папки с помощью редактора ACL обозревателя. Отключите и снова включите наследование, чтобы принудительно обновить ACL с соответствующими наследуемыми разрешениями. Вы также можете использовать VBScript для автоматизации этого процесса.
Состояние
Такое поведение предусмотрено программой. Это поведение не происходит из-за изменения дизайна в Windows Vista.
Шаги для воспроизведения поведения
- Создайте папку test1 с разрешениями на чтение и изменение пользователей.
- Создайте подпапку test1\sub и включите наследование от родительского (по умолчанию). Эта папка должна отображать всех пользователей:read и users:change в виде унаследованных разрешений.
- Создайте еще одну папку test2 с разрешениями только администраторов:полный контроль .
- Переместите вложенную папку для тестирования 2.
- Просмотрите разрешения на test2\sub, чтобы просмотреть все:чтение и пользователи:изменить как унаследованные разрешения, хотя разрешение родителей — администраторы:полный контроль.
- Добавьте другую группу или пользователя (например, гостя) в ACL для предоставления вложенных прав, например, доступ на чтение с помощью редактора ACL обозревателя. После нажатия кнопки "Применить" все пользователи:чтение и изменение удаляются, а только администраторы:полный контроль отображаются как унаследованные разрешения рядом с только что добавленным.