Назад | Перейти на главную страницу

Как можно получать сообщения об ошибках «Доступ запрещен» даже после назначения правильных разрешений?

Недавно я работал над миграцией серверов и устранял проблемы с разрешениями на некоторых клонированных серверах Windows 2008. Я обычно использую Прокмон чтобы сузить круг проблем с разрешениями и исправить их, а затем возобновить тестирование.

Что-то, что меня поражает, - это когда я назначаю правильные разрешения, а затем снова запускаю тест, но по-прежнему получаю ту же ошибку "ACCESS DENIED" в procmon для того же пользователя, которому я только что назначил полный доступ для этого каталога или раздела реестра. это не удается.

Как это технически возможно? Почему, кроме отсутствия правильного набора ACL, должен быть возвращен ACCESS DENIED?

В этой конкретной головной боли у меня есть учетная запись Active Directory, которую мы используем для запуска наших служб, которые должны иметь возможность охватывать несколько серверов, и она постоянно получает ошибки ACCESS DENIED на HKEY_CLASSES_ROOT \ Wow6432Node \ CLSID. Я трижды проверил, что у этого пользователя есть полный доступ к этому ключу, но это все равно происходит.

Вот подробности из procmon:

Date & Time:    8/9/2011 5:13:27 PM
Event Class:    Registry
Operation:      RegOpenKey
Result:         ACCESS DENIED
Path:           HKCR\Wow6432Node\CLSID
TID:            5084
Duration:       0.0000073
Desired Access: Read

Description:    Event Alarm Service
Company:        Dorian Software Creations, Inc.
Name:           EvtAlarm.exe
Version:        6.0.0.148
Path:           C:\Program Files (x86)\Event Alarm\EvtAlarm.exe
Command Line:   "C:\Program Files (x86)\Event Alarm\EvtAlarm.exe"
PID:            5232
Parent PID:     616
Session ID:     0
User:           OUR\SpecialUser
Auth ID:        00000000:09af42e2
Architecture:   32-bit
Virtualized:    False
Integrity:      High
Started:        8/9/2011 5:13:27 PM
Ended:          8/9/2011 5:13:39 PM

Редактировать: Спасибо всем за отзывы. Я решил нашу основную проблему, хотя мой вопрос все еще в силе, поскольку я не чувствую, что то, что я сделал, действительно является объяснением, поэтому я не собираюсь публиковать это как официальный ответ. Следуя совету компании, которая производит рассматриваемое программное обеспечение, я добавил учетную запись службы, о которой идет речь, в локальную группу администраторов, и теперь она может успешно запускаться, а ошибки ЗАПРЕЩЕН В ДОСТУПЕ исчезли. Для меня это все еще не имеет смысла, поскольку разрешения (включая действующие разрешения) показали, что эта учетная запись службы должна иметь право на доступ к разделу реестра, в котором было отказано ...

Скорее всего, токен для пользователя не был восстановлен. Когда пользователь входит в систему / проверяет подлинность, ему генерируется токен безопасности со всеми его разрешениями. Когда происходят изменения разрешений, пользователю необходимо восстановить свой токен безопасности либо с помощью локального SAM, либо с помощью контроллера домена. Обычно это проблема только при назначении прав пользователей, а не разрешений на объекты.

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

У меня была аналогичная проблема с моим приложением. Решением для меня было отключить UAC