Какой функцией можно добавить аудит определенного события для файла? Я нашел функцию AddAuditAccessObjectAce, но не могу получить для нее правильный SID. Как это можно сделать и нужно формировать маску? Если кто использовал, подскажите плиз.
Здравствуйте, DelpH, Вы писали:
DH>Какой функцией можно добавить аудит определенного события для файла? Я нашел функцию AddAuditAccessObjectAce, но не могу получить для нее правильный SID. Как это можно сделать и нужно формировать маску? Если кто использовал, подскажите плиз.
Это делается очень просто с помощью функции AddAuditAccessAce.
Давай ее расмотрим подробно
Первый параметр — ACL твоего файлика. Т.е. ты считываешь ACL файла и создаешь новый большего размера. Вот его-то и передаешь в первый параметр. Как вычеслить размер ACL + ACE, если сам не разберешься — подскажу.
Вторым параметром всегда передаешь ACL_REVISION.
Третьим — доступ на который будет генерироваться событие аудита.
4 — Sid пользователя. Его можно получить с помощью функции LookupAccountName.
5 и 6 — понятно.
Самое трудное — подготовить ACL. Очень подробную информацию по этому поводу можно найти в этой книге
Здравствуйте, DelpH, Вы писали:
DH>Какой функцией можно добавить аудит определенного события для файла? Я нашел функцию AddAuditAccessObjectAce, но не могу получить для нее правильный SID.
Что значит правильный. Сюда ты должен запихнуть SID юзера или группы для которых будет происходить аудит. Если для "всех", то S-1-1-0, и т.п.
DH>Как это можно сделать и нужно формировать маску? Если кто использовал, подскажите плиз.
Для каждого типа объектов ядра есть свои флаги доступа, и для файлов тоже если не хочеш в них рыться то попробуй задать базовые GENERIC_READ, GENERIC_WRITE ... Они проецируются на соотв-е права конкретного типа объектов.
Здравствуйте, DelpH, Вы писали:
DH>Какой функцией можно добавить аудит определенного события для файла? Я нашел функцию AddAuditAccessObjectAce, но не могу получить для нее правильный SID. Как это можно сделать и нужно формировать маску? Если кто использовал, подскажите плиз.
Сид теперь вроде получается нормально, но при открытии свойств появляется сообщение, что весь ACL настроен неправильно и лучше его resetнуть. В чем ошибка? Делаю так:
Да вроде все нормально. Я бы посоветовал только сначала без добавления нового ACE установить скопированный. Если он будет нармальный, то ошибка при добавлении, если не нормальный — при копировании и/или вычислении размера.
это с помощью той библиотеки. почему я её советую — потому что в WinSecurity много тонких мест(таких как порядок ACE и много другое). Плюс библиотека написана одним из знающих людей и многократно после этого опробована. Есть конечно минус — она слегка устарела, но для Ваших нужд должно хватить. Попробуйте.
[]
D>это с помощью той библиотеки. почему я её советую — потому что в WinSecurity много тонких мест(таких как порядок ACE и много другое). Плюс библиотека написана одним из знающих людей и многократно после этого опробована. Есть конечно минус — она слегка устарела, но для Ваших нужд должно хватить. Попробуйте.
Здравствуйте, Алекс, Вы писали:
А>Здравствуйте, Denis, Вы писали:
А>[]
D>>это с помощью той библиотеки. почему я её советую — потому что в WinSecurity много тонких мест(таких как порядок ACE и много другое). Плюс библиотека написана одним из знающих людей и многократно после этого опробована. Есть конечно минус — она слегка устарела, но для Ваших нужд должно хватить. Попробуйте.
А>А что за библиотека?
Ой! а я и не глянул что пост почему пустой был... =( вот она
приношу извинения.(но я честно писал адрес)
За либу спасибо. Но до нее руки еще не дошли. В общем теперь такая проблема: если в списке пользователей стоит Everyone, то любой аудит добавляется нормально. Но если же там прописан хотя бы еще один пользователь, то добавляется и ему Read&Execute аудит с типом Unknown, а сам внутри пустой ...
В списке "субъектов" доступа к файлу стоят "Everyone" и "delph" например. На данный момент нет ни одного аудита, при выполнении в аудите появляются 2 (!) записи (а должна быть только одна для Everyone). Т.е. появился "лишний" аудит на delph, который имеет хитрый тип Unknown. Как сделать, чтоб появлялся только один ?
[]
DH>В списке "субъектов" доступа к файлу стоят "Everyone" и "delph" например. На данный момент нет ни одного аудита, при выполнении в аудите появляются 2 (!) записи (а должна быть только одна для Everyone). Т.е. появился "лишний" аудит на delph, который имеет хитрый тип Unknown. Как сделать, чтоб появлялся только один ?
Для форматирования кода имеются специальные теги. Очень рекомендую использовать.
По существу: будь внимательнее!