Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Это понятно. Но не совсем ;-) 01.10.02 20:17 Число просмотров: 1141
Автор: HandleX <Александр М.> Статус: The Elderman
|
> а все дело завязано на привилегиях, которые выставляются в > токене процесса с помощью спец. функций и флагов. > AdjustTokenPrivileges - устанавливает/снимает привилегии > GetTokenInformation - плучаешь инфу о токене - конкретно > для привилегий юзай > TokenPrivileges - получишь на выходе > typedef struct _TOKEN_PRIVILEGES { // tp > DWORD PrivilegeCount; > LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; > } TOKEN_PRIVILEGES; > ну вот и все
Всё и ничего. Итак, ситуёвина. Лежит файло в каталоге раздела NTFS. На него навешали разных ACE'ов в DACL (ну, эти это могут, другие то-сё и т.д.). Я открыл файло с флагом доступа вместо GENERIC_READ поставил MAXIMUM_ALLOWED. И теперь хочу узнать по дескриптору этого файла, могу ли я его удалить (к примеру) — знать мне это надо, к примеру, для того, чтобы в UI некоторые пункты меню, к примеру, сделать Disabled. А сразу открывать c флагом DELETE я его не хочу, и опять, для этого могут быть серьёзные причины — аудит выставлен, к примеру, на доступ к объектам, и я не хочу лишних записей ;-)))
Итак, вопрос ещё раз — как узнать по дескриптору объекта тот ACCESS_MASK, который система назначила объекту, открытому по MAXIMUM_ALLOWED ;-)))))))
Ну, прямо de ja vu
|
|
|