Хочу освежить в памяти тему (которая на самом деле никогда не была для меня особо понятной). 1. что такое authority (NT AUTHORITY и т.п.)? Местами в техлитературе это переведено как "власть" и его идентификатор - часть SID, но что конкретно оно из себя представляет? 3. могут ли быть другие authority кроме шести предопределенных? 2. что означает в этом контексте SubAuthority? * тема будет дополняться другими глупыми вопросами *
- создаю файл - убираю все разрешения кроме Everyone - read - ставлю владельцем System - удаляю файл shift+delete Почему он удаляется? Разве не должно быть access denied?
ormoulu, могу ошибаться, но право DELETE вроде как идет с вышестоящей директории. Вот в самой этой папке ты ничего не удалишь.
UPD: можно удалить файл, на который нет прав, если есть разрешение Delete Subfolders and Files на директорию. Но! Если добавить этому файлу атрибут Readonly, удалить его становится невозможно. Забавно...
ormoulu, в порядке оффтопа - как можно разрабывать лпе , не зная базы? Или там можно тупо фаззить ? наверное потому что нужно снять аттрибут, а права на это уже нет.
Насколько я знаю, атрибут несет информативную функцию, для удаления (в норме) снимать его не нужно. Вы о чем? Расшифруйте пожалуйста. Ну фазить-то можно, тупо или умно, было бы что фазить. Чистая бинарщина редко встречается, все уже зафажено вдоль и поперек.
Нужно, иначе файл не открыть на запись, да и удалить его не получится. Имею ввиду программно. ну видел какие-то ваши старые посты, и сложилось мнение, что вы кодили / находили в винде ядерные лпе. Я как бы стремлюсь к этому (хотел бы найти хотя бы лпе , а в идеале рце), но вот как раз не хватает базы по смежным темам - этот злополучный СОМ, безопасность, ядро и т.д. Поэтому даже не пробую, т.к. врядли выйдет недокументированное кодить, не зная документированной матчасти.
Насколько я знаю, атрибут несет информативную функцию, для удаления (в норме) снимать его не нужно. Хмм... нет, вы правы. Readonly атрибут не дает удалять, explorer и cmd его снимают. --- Сообщение объединено, 4 ноя 2020 --- Попробуйте начать с разбора того что на паблике. Есть хорошие пейперы где все разжевано. Перечисленные темы обширны настолько, что изучать их подробно заранее смысла нет, если ваша цель не программирование в этой области. Гораздо эффективнее делать это на конкретных примерах.
Ну да, верно. Защищенный объект имеет дескриптор безопасности (DA), который содержит в себе список инф. о пользователях которым разрешен/запрещен доступ (DACL). Каждый элемент в DACL (ACE) содержит SID пользователя, маску доступа и различные флаги, среди которых есть флаги определяющие наследуется ли элемент ACE дочерним объектом. Например OBJECT_INHERIT_ACE - ACE наследуется неконтейнерным дочерним объектом. Как то так. --- Сообщение объединено, 13 ноя 2020 --- ACL это общее название для списков DACL (о котором я писал выше) и SACL, которые содержатся в SD. SACL используется для аудита, т.е. произошло обращение, добавилась запись в журнал. SID идентифицирует пользователя или группу. Token привязывается к процессу (потоку). Он содержит SID пользователя, SID групп к которым принадлежит пользователь, привилегии, session id и много чего ещё. Когда поток обращается к защищенному объекту SID-ы из токена проверяются по списку DACL и выносится вердикт (разрешить или запретить доступ). Коротко так, многие нюансы я опустил. --- Сообщение объединено, 13 ноя 2020 --- ormoulu, все ведь подробно описано в MSDN: Authorization Authentication Ещё можно Руссиновича почитать, главу по безопасности.