Т.е. если SeBackupPrivilege - то видимо изменить пермишны таким образом не получится... второй вопрос в силе: "Как изменить права на каталог\файл, не беря его во владение, если доступа к нему нет?"
Есть в Resource Kit'е для 2000 такая утилита - diruse - подсчитывает размер каталогов. Так вот, она позволяет это сделать (подсчитать размер) даже в том случае, когда запрещён ЛЮБОЙ доступ к этому каталогу. При условии что программа запущена с привилегиями Администратора. Есть какие-нить идеи, как это может быть реализовано?
Собсвтенно, вопрос навеян размышлениями на другую тему: как изменить права на каталог\файл, не беря его во владение, если доступа к нему нет? На этот вопрос тоже неплохо бы ответ услышать :)
Скорее всего эта прога юзает привилегию SeBackupPrivilege. Это ответ на все твои вопросы.13.09.02 10:36 Автор: HandleX <Александр М.> Статус: The Elderman
Т.е. если SeBackupPrivilege - то видимо изменить пермишны таким образом не получится... второй вопрос в силе: "Как изменить права на каталог\файл, не беря его во владение, если доступа к нему нет?"
На все! ;-)13.09.02 12:08 Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 13.09.02 12:10 Количество правок: 1
> Т.е. если SeBackupPrivilege - то видимо изменить пермишны > таким образом не получится... второй вопрос в силе: "Как > изменить права на каталог\файл, не беря его во владение, > если доступа к нему нет?"
1) Включаем привилегии для процесса SE_BACKUP_NAME and SE_RESTORE_NAME.
1) Вызывем CreateFile с флагами GENERIC_ALL, OPEN_EXISTING и FILE_FLAG_BACKUP_SEMANTICS. Это может быть каталог вместо файла.
3) Создаём приемлемый SD для нужного файла\каталога.
4) Вызываем SetKernelObjectSecurity.
Схема эта примерная, возможно, прийдётся поиграться в деталях. К примеру, вместо флага GENERIC_ALL нужно будет указать WRITE_DAC или что-то в этом роде.