Наследование прав в w2k
От: 50Hz Россия  
Дата: 08.05.03 22:47
Оценка:
Здравствуйте!
Подскажите пожалуйста, как получить из ACE програмно флаг о том, что данное право унаследовано от родительского объекта (галочка такая есть во вкладке Security: Allow inheritable permissions from parent to propagate to this object). Пробовал смотреть флаг INHERITED_ACE, но он не всегда работает.
И вообще, как получить, куда права наследуются (только на этот объект, на этот объеки и его подкаталоги, ...).
Мож есть дока какая по этим флагам или пример. Смотрел Check_CD из MSDN — там наследований нет, а так все здорово.
Заранее спасибо.
Re: Наследование прав в w2k
От: Alexey Shirshov Россия http://wise-orm.com
Дата: 09.05.03 09:47
Оценка:
Здравствуйте, 50Hz, Вы писали:

H>Здравствуйте!

H>Подскажите пожалуйста, как получить из ACE програмно флаг о том, что данное право унаследовано от родительского объекта (галочка такая есть во вкладке Security: Allow inheritable permissions from parent to propagate to this object). Пробовал смотреть флаг INHERITED_ACE, но он не всегда работает.

Это как понять?

H>И вообще, как получить, куда права наследуются (только на этот объект, на этот объеки и его подкаталоги, ...).


Те же флаги.

H>Мож есть дока какая по этим флагам или пример. Смотрел Check_CD из MSDN — там наследований нет, а так все здорово.


Есть. MSDN.
Ты скажи чего тебе конкретно нужно или какой код не работает так, как ты предполагаешь.
Re: Наследование прав в w2k
От: Dima2  
Дата: 09.05.03 13:05
Оценка:
50>Пробовал смотреть флаг INHERITED_ACE, но он не всегда работает
это как не всегда?

Кратко:
INHERITED_ACE — если флаг установлен в ACE это значит, что этот ACE унаследован

INHERIT_ONLY_ACE — если флаг установлен в ACE, то этот ACE не рассматривается при проверке доступа к данному объекту, однако может наследоваться дочерними объектами (зависит от OBJECT_INHERIT_ACE и CONTAINER_INHERIT_ACE)

CONTAINER_INHERIT_ACE — этот ACE может наследоваться в потомках, бесконечно долго

NO_PROPAGATE_INHERIT_ACE — этот ACE может наследоваться только в прямых потомках данного объекта, в потомках потомков этого ACE уже не будет
Re[2]: Наследование прав в w2k
От: 50Hz Россия  
Дата: 09.05.03 14:58
Оценка:
Здравствуйте, Dima2, Вы писали:

50>Пробовал смотреть флаг INHERITED_ACE, но он не всегда работает

D>это как не всегда?

D>Кратко:

D>INHERITED_ACE — если флаг установлен в ACE это значит, что этот ACE унаследован

D>INHERIT_ONLY_ACE — если флаг установлен в ACE, то этот ACE не рассматривается при проверке доступа к данному объекту, однако может наследоваться дочерними объектами (зависит от OBJECT_INHERIT_ACE и CONTAINER_INHERIT_ACE)


D>CONTAINER_INHERIT_ACE — этот ACE может наследоваться в потомках, бесконечно долго


D>NO_PROPAGATE_INHERIT_ACE — этот ACE может наследоваться только в прямых потомках данного объекта, в потомках потомков этого ACE уже не будет


Не всегда — это так: смотрю флаги к какой нибудь директории, которавя наследует права от родительского объекта. В Винде для этой директории стоит флаг, что разрешено раследование прав от парента. А флага INHERITED_ACE я к данной папек не нахожу. Может дгугой флаг за наследовавние отвечает? Но, что самое интересное, если для данной папки в Винде флажок этот убрать, а затем поставить наместо и нажать Apply, а затем запустить мою прогу, то влаг INHERITED_ACE в ней появляется. Как с этим бороться или что я не так делаю?
Еще: в Винде при установке прав есть выбор, куда их наследовать. Там 7 пунктов. Так вот какие комбинации флагов формируют эти пункты?
Re[3]: Наследование прав в w2k
От: Dima2  
Дата: 09.05.03 17:59
Оценка:
Здравствуйте, 50Hz, Вы писали:

H>Не всегда — это так: смотрю флаги к какой нибудь директории, которавя наследует права от родительского объекта. В Винде для этой директории стоит флаг, что разрешено раследование прав от парента.

Ты имееш ввиду checkbox "Allow inheritable permission....."

H>А флага INHERITED_ACE я к данной папек не нахожу.

Выражайся точнее, этот флаг может быть только в одном из ACE DACL для этого объекта, а что значит "INHERITED_ACE я к данной папек не нахожу" не совсем понятно.
Разрешение наследования не означает что должен стоять флаг INHERITED_ACE, этот флаг стоит у ACE уже унаследованных от какого-либо объекта, но его может не быть в ACE, которые непосредственно созданы тобой (т.е. не унаследованы).

H>Еще: в Винде при установке прав есть выбор, куда их наследовать. Там 7 пунктов. Так вот какие комбинации флагов формируют эти пункты?

Не понял что 7 пунктов, это где?

Приведи лучше код как ты смотриш флаги, иерархию объектов и какие флаги ты получаеш с помощью своей программы, я думаю это снимет массу вопросов.
Re[4]: Наследование прав в w2k
От: 50Hz Россия  
Дата: 09.05.03 21:18
Оценка:
Здравствуйте, Dima2, Вы писали:

H>Не всегда — это так: смотрю флаги к какой нибудь директории, которавя наследует права от родительского объекта. В Винде для этой директории стоит флаг, что разрешено раследование прав от парента.

D>Ты имееш ввиду checkbox "Allow inheritable permission....."
Да! Именно этот флаг.

H>А флага INHERITED_ACE я к данной папек не нахожу.

D>Выражайся точнее, этот флаг может быть только в одном из ACE DACL для этого объекта, а что значит "INHERITED_ACE я к данной папек не нахожу" не совсем понятно.
Да я знаю, но в том-то и дело, что нет ни в одном.

D>Разрешение наследования не означает что должен стоять флаг INHERITED_ACE, этот флаг стоит у ACE уже унаследованных от какого-либо объекта, но его может не быть в ACE, которые непосредственно созданы тобой (т.е. не унаследованы).

Как же тогда узнать, что данная ACE унаследована от родительского объекта?

H>Еще: в Винде при установке прав есть выбор, куда их наследовать. Там 7 пунктов. Так вот какие комбинации флагов формируют эти пункты?

D>Не понял что 7 пунктов, это где?
Имел ввиду следующее:
— This folder only
— This folder, subfolders & files
— This folder & subfolders
— This folder & files
...


D>Приведи лучше код как ты смотриш флаги, иерархию объектов и какие флаги ты получаеш с помощью своей программы, я думаю это снимет массу вопросов.

Я просто взял прогу из MSDN: CHECK CD называется. Ей флаги и смотрю, а когда разберусь как все это дело наследуется, то вставлю кусок этого сэмпла себе в прогу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.