Маскировка системного диска (Windows)
От: vsop  
Дата: 04.09.10 10:10
Оценка:
Доброго времени суток!

Существует такая проблема: сделать системный диск read-only для процессов, работающих под определённым user'ом. Скажем некто логинится как обычно и получает стандартный доступ. Мой процесс (и его под-процессы, что самое важное) запускается в контексте другого user'а на том же десктопе. Но он/они не должен иметь возможности писать на системный диск.

Типичное решение: DefineDosDevice системному диску под этим user'ом не работает — на то он и системный диск.

Корявое решение которое есть на данный момент: мой процесс посылает сигнал сервису на старте,тот делает DefineDosDevice(DDD_REMOVE_DEFINITION, ... системному диску (!), затем мой процесс делает DefineDosDevice() тому же диску под user'ом (но как виртуальную network share на этот же диск в read-only режиме), затем сервис восстанавливает определение системного диска под SYSTEM. То есть получается, что на мгновение система оказывается без системного диска, что может приводить к несвойственным проблемам.

Вопрос: может кто сможет предложить лучшее решение, при котором мой процесс получил бы то же самое? Filter driver?

Способ установки ACL/DACL не годиться, так как не даёт гарантии по разным причинам.

Надеюсь, кто-нибудь поймёт о чём я... Заранее благодарен!
definedosdevice system drive
Re: Маскировка системного диска (Windows)
От: ononim  
Дата: 04.09.10 11:09
Оценка:
V>Способ установки ACL/DACL не годиться, так как не даёт гарантии по разным причинам.
Это еще почему? Это единственный корректный способ
Как много веселых ребят, и все делают велосипед...
Re[2]: Маскировка системного диска (Windows)
От: x64 Россия  
Дата: 13.09.10 17:30
Оценка:
V>>Способ установки ACL/DACL не годиться, так как не даёт гарантии по разным причинам.
O>Это еще почему? Это единственный корректный способ

Маловероятно, но может быть ему всё таки виртуализация записи нужна?
Re: Маскировка системного диска (Windows)
От: x64 Россия  
Дата: 13.09.10 17:33
Оценка:
V>сделать системный диск read-only для процессов, работающих под определённым user'ом.

Драйвер-фильтр файловой системы решит твою проблему, но не понятно, почему ACL не подходит.

V>Способ установки ACL/DACL ... не даёт гарантии по разным причинам.


Конкретнее.
Re[2]: Маскировка системного диска (Windows)
От: vsop  
Дата: 13.09.10 18:02
Оценка:
Здравствуйте, x64, Вы писали:

V>>сделать системный диск read-only для процессов, работающих под определённым user'ом.


x64>Драйвер-фильтр файловой системы решит твою проблему, но не понятно, почему ACL не подходит.


V>>Способ установки ACL/DACL ... не даёт гарантии по разным причинам.


x64>Конкретнее.


Стандартный ACL не подходит поскольку его (для меня) сложно отслеживать и контроллировать. Даже если ставится он на директорию выше, в папке профиля этого самого виртуального usera есть много под-настроек и своих ACL на директории и файлы. К тому-же, Windows их сам подправляет динамически. Нет 100% гарантии что где-нибудь лазейка и найдётся.


А можно поподробнее о драйвер-фильтре файловой системы? Примеры есть? И опять-же, он должен контроллировать только одного usera...
Re[3]: Маскировка системного диска (Windows)
От: x64 Россия  
Дата: 13.09.10 18:11
Оценка:
V>К тому-же, Windows их сам подправляет динамически.

А, кстати, да, что-то такое было вроде, особенно начиная с Vista и выше.

V>Нет 100% гарантии что где-нибудь лазейка и найдётся.


Ну если всё так серьёзно, то, пожалуй, да, лучше один раз написать (мини-)фильтр и не парится в будущем.

V>А можно поподробнее о драйвер-фильтре файловой системы?


Подробнее есть здесь, например.

V>Примеры есть?


Примеры legacy-фильтров есть во всех WDK (не путать с DDK) вплоть до WDK 7.0. Начиная с WDK 7.1 остались только сэмплы минифильтров.

V>И опять-же, он должен контроллировать только одного usera...


С определением пользователя в файловых фильтрах проблем нет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.