Re: Ну ка гуру, встаньте в ряд - ACE-записи в ACL
От: TarasCo  
Дата: 04.05.05 14:51
Оценка:
Здравствуйте, Desert_Sun, Вы писали:

D_S>Задача стоит такая — защита ключа реестра.

D_S>системе нужно предоставить полный доступ (точнее читать, писать, удалять),
D_S>остальным — закрыть полностью доступ.

D_S>Вопрос 1: достаточно ли будет для SID'а SECURITY_NT_AUTHORITY — SECURITY_LOCAL_SYSTEM_RID установить в ACE в поле grfAccessMode значение SET_ACCESS (или GRANT_ACCESS — тоже вопрос),

D_S>для SECURITY_WORLD_SID_AUTHORITY — SECURITY_WORLD_RID — DENY_ACESS

Видимо речь идет о использовании ф. SetEntriesInAcl?
GRANT_ACCESS — добавит права к существующим уже, SET_ACCESS — заменит. Т.е, допустим для группы стояло разрешение на чтение. Нужно добавить разрешение на запись — тогда GRANT_ACCESS. Если нужно заменить права чтение/запись на только чтение — нужно SET_ACCESS.
Я думаю, будет недостаточно двух вызовов SetEntriesInAcl для SECURITY_NT_AUTHORITY и SECURITY_WORLD_SID_AUTHORITY — они не изменят права пользоватей других групп ( допустим, power user ). См п.2

D_S>Вопрос 2: какая логика (и/или) при применении нескольких ACE (в том числе если один разрешающий а другой запрещающий)

ACE просматриваются последовательно. Допустим в списке для юзера 1 последовательно находится два ACE — первый разрешает запись, второй — запрещает. В этом случае просмотр ACE будет заканчиваться на первом элементе и запись будет всегда разрешена.

D_S>Вопрос 3: в группу everyone (представленной как я понимаю SECURITY_WORLD_SID_AUTHORITY — SECURITY_WORLD_RID) входит группа system SECURITY_NT_AUTHORITY — SECURITY_LOCAL_SYSTEM_RID)? Как я понимаю нет, но хотелось бы подтверждения.

В группу everyone входят все пользователи, в том числе и относящиеся к группе System. Иначе получился бы парадокс: к объекту разрешен доступ всем, но система не может получить к нему доступа.

Я думаю Вам нужно сделать следующее.
1)Создать новый ACL: InitializeAcl
2)Добавить туда разрешающий ACE для NT_AUTHORITY: AddAccessAllowedAce
3)Присвоить ACL нужной ветви реестра: RegSetKeySecurity
Да пребудет с тобою сила
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.