Ну ка гуру, встаньте в ряд - ACE-записи в ACL
От: Desert_Sun Россия  
Дата: 04.05.05 14:23
Оценка:
Задача стоит такая — защита ключа реестра.
системе нужно предоставить полный доступ (точнее читать, писать, удалять),
остальным — закрыть полностью доступ.

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

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

Вопрос 3: в группу everyone (представленной как я понимаю SECURITY_WORLD_SID_AUTHORITY — SECURITY_WORLD_RID) входит группа system SECURITY_NT_AUTHORITY — SECURITY_LOCAL_SYSTEM_RID)? Как я понимаю нет, но хотелось бы подтверждения.
и сказка станет былью
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
Да пребудет с тобою сила
Re[2]: Ну ка гуру, встаньте в ряд - ACE-записи в ACL
От: Desert_Sun Россия  
Дата: 04.05.05 15:11
Оценка:
Здравствуйте, TarasCo, Вы писали:


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

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

Т.е. исходя из такой логики например если список из ACE будет построен наоборот:
сначала для SECURITY_WORLD_SID_AUTHORITY — запрет, а потом для
SECURITY_NT_AUTHORITY — разрешение, то не получит доступ вообще никто?

И еще: а почему это не отразится на группах типа power user — они что не относятся к группе everyone? (им тоже нужно запретить доступ)
и сказка станет былью
Re[3]: Ну ка гуру, встаньте в ряд - ACE-записи в ACL
От: TarasCo  
Дата: 04.05.05 15:31
Оценка:
Здравствуйте, Desert_Sun, Вы писали:

D_S>Здравствуйте, TarasCo, Вы писали:



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

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

D_S>Т.е. исходя из такой логики например если список из ACE будет построен наоборот:

D_S>сначала для SECURITY_WORLD_SID_AUTHORITY — запрет, а потом для
D_S>SECURITY_NT_AUTHORITY — разрешение, то не получит доступ вообще никто?

IMHO, да

D_S>И еще: а почему это не отразится на группах типа power user — они что не относятся к группе everyone? (им тоже нужно запретить доступ)


Может быть так:
ACL:
ACE1: админам разрешить все
ACE2: power user разрешить чтение
ACE3: всем разрешить чтение.
Ваш подход привратит это в:
ACL:
ACE1: админам разрешить все
ACE2: power user разрешить чтение
ACE3: всем запретить доступ
Соответсвенно, power user ы продолжают иметь доступ на чтение
Да пребудет с тобою сила
Re[4]: Ну ка гуру, встаньте в ряд - ACE-записи в ACL
От: Desert_Sun Россия  
Дата: 04.05.05 15:37
Оценка:
Здравствуйте, TarasCo, Вы писали:

TC>Ваш подход привратит это в:

TC>ACL:
TC>ACE1: админам разрешить все
TC>ACE2: power user разрешить чтение
TC>ACE3: всем запретить доступ
TC>Соответсвенно, power user ы продолжают иметь доступ на чтение

а что SECURITY_LOCAL_SYSTEM_RID содержит и админов и power пользователей?

Мне нужно, еще раз, только системе дать доступ,
а ВСЕМ остальным запретить (в том числе и админам).
и сказка станет былью
Re[5]: Ну ка гуру, встаньте в ряд - ACE-записи в ACL
От: TarasCo  
Дата: 04.05.05 15:43
Оценка: 2 (1)
Здравствуйте, Desert_Sun, Вы писали:

D_S>Здравствуйте, TarasCo, Вы писали:


TC>>Ваш подход привратит это в:

TC>>ACL:
TC>>ACE1: админам разрешить все
TC>>ACE2: power user разрешить чтение
TC>>ACE3: всем запретить доступ
TC>>Соответсвенно, power user ы продолжают иметь доступ на чтение

D_S>а что SECURITY_LOCAL_SYSTEM_RID содержит и админов и power пользователей?


Конечно, нет. Но меняя права для system и для everyone Вы не затроните ACE для administrator например и он останется в списке ACL (если он там есть ) без изменений и будет продолжать разрешать доступ.

D_S>Мне нужно, еще раз, только системе дать доступ,

D_S>а ВСЕМ остальным запретить (в том числе и админам).

Еще раз пишу:
Нужно создать новый список доступа ACL и поместить туда один разрешающий ACE для системы. После этого, все кроме системных пользователей обламаются гарантированно.
Да пребудет с тобою сила
Re[6]: Ну ка гуру, встаньте в ряд - ACE-записи в ACL
От: Desert_Sun Россия  
Дата: 04.05.05 15:54
Оценка:
Здравствуйте, TarasCo, Вы писали:

TC>Еще раз пишу:

TC>Нужно создать новый список доступа ACL и поместить туда один разрешающий ACE для системы. После этого, все кроме системных пользователей обламаются гарантированно.

Спасибо большое.
Извиняюсь, что забыла сказать, что в SetEntriesInAcl сразу подразумевалось создать новый ACL, а не наследовать существующий. Поэтому и возникло непонимание.
и сказка станет былью
Re[4]: Ну ка гуру, встаньте в ряд - ACE-записи в ACL
От: Andrew S Россия http://alchemy-lab.com
Дата: 04.05.05 16:15
Оценка:
D_S>>>>Вопрос 2: какая логика (и/или) при применении нескольких ACE (в том числе если один разрешающий а другой запрещающий)
TC>>>ACE просматриваются последовательно. Допустим в списке для юзера 1 последовательно находится два ACE — первый разрешает запись, второй — запрещает. В этом случае просмотр ACE будет заканчиваться на первом элементе и запись будет всегда разрешена.

D_S>>Т.е. исходя из такой логики например если список из ACE будет построен наоборот:

D_S>>сначала для SECURITY_WORLD_SID_AUTHORITY — запрет, а потом для
D_S>>SECURITY_NT_AUTHORITY — разрешение, то не получит доступ вообще никто?

TC>IMHO, да


Дело в том, что, насколько я помню, построить список иначе можете только вы сами. Все высокоуровневые функции строят DACL таким образом, что сначала идут записи с запрещающими ACE, а затем только с разрешающими. При этом список действительно просматривается последовательно, до нахождения записи ACE с соотв. правами и SID. Однака благодаря такому упорядочиванию запрещающие записи имеют "перевес" над разрешающими.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.