Похоже, что в Windows 2008 R2 произошло небольшое изменение в способе взаимодействия разрешений общего доступа и NTFS. В нашем приложении нам нужно установить разрешение на запись атрибутов, чтобы выполнять запись в настраиваемые свойства в документах OLE / DB. В Windows 2003 установка разрешения для общего доступа на Modify
не будет конфликтовать с этой настройкой NTFS, но в Windows 2008 R2 мы должны установить разрешение общего доступа на Full Control
или запись в настраиваемые свойства не удастся.
Обратите внимание: если бы я поступил по-своему, все было бы хорошо. Я считаю, что разрешения общего доступа плохо спроектированы, и есть другие более эффективные способы по-разному относиться к сетевым и локальным пользователям, если в этом есть какая-то необходимость. Но некоторые из наших клиентов имеют жесткие политики безопасности.
Я не понимаю, о чем вы здесь говорите. Нет разрешений для общего доступа с названием Modify
в Windows Server 2003 и Windows Server 2008 R2:
Взаимодействие между разрешениями общего ресурса и разрешениями NTFS может быть сложным. Разрешения на общие ресурсы позволяют гораздо проще взглянуть на мир. Ваша детализация для разрешений на общий доступ ограничена Full Control
, Change
и Read
. Не существует концепции владельца общего ресурса и «наследования разрешений на общий ресурс». Чтобы еще больше усложнить ситуацию, вы можете использовать одну и ту же папку более одного раза, чтобы каждый общий ресурс имел независимые разрешения. Если у вас есть «вложенные» общие ресурсы, вы получите разрешения для общего доступа к любому общему ресурсу, который вы сопоставили.
Разрешения NTFS всегда принудительно, даже если пользователь или процесс удален. Windows примет во внимание как разрешения общего ресурса, так и разрешения NTFS и «вычислит» их действующие разрешения.
Общий процесс такой:
Deny
отменит любые Allowed
.Deny
отменит любые Allowed
разрешения. Помните, что разрешения NTFS, которые не наследуются или явно не назначаются, являются неявно установлен в Deny
.Вероятно, вы видите более ограничительную интерпретацию Modify
(или Change
?) в Windows Server 2008 R2, который затем рассчитывается с учетом ваших менее ограничительных разрешений NTFS. Мне нравится, что @Helge Klein не смог найти никакой документации о том, что представляют собой фактические атомарные разрешения для Modify
Поделитесь "мета-разрешением".
Как вы обнаружили, этот процесс сложен и подвержен ошибкам. Сделайте свою жизнь проще и используйте разрешения NTFS исключительно для контроля доступа. Установите разрешения для общего доступа, чтобы они были широко открыты (DOMAIN\Authenticated Users
- Full Control
), а затем установите разрешения NTFS, чтобы обеспечить желаемый контроль доступа - типично следующее:
DOMAIN\Authenticated Users
- Read
DOMAIN\Accounting-Users
- Modify
DOMAIN\IT-Admins
- Full Control
В Токен доступа конечный пользователь или процесс содержит более строгие списки ACL, а не просто их объединение. Это единственный разумный способ сделать это, иначе вам придется поддерживать и устранять неполадки ваших ACL в двух отдельных местах с помощью двух отдельных наборов инструментов. Это путь безумия.