Примонтировать диск экслюзивно для приложения/процесса
От: x-code  
Дата: 01.09.18 14:16
Оценка:
Начинаю понемногу собирать информацию для одной задумки.
Соврешенно не знаю как это правильно называется и есть ли такое вообще в природе.

Итак, хочется иметь возможность примонтировать некоторую файловую систему (на самом деле это будет виртуальный криптоконтейнер, монтируемый в ФС с помощью программ типа veracrypt) эксклюзивно для единственного процесса (т.е. моего процесса, запускающего эту процедуру).
Никакие другие процессы и приложения не должны видеть этой ФС. Разумеется эта ФС не должна появляться в проводнике и прочее.

Путь к ней разумеется может не начинаться с буквы диска, пускай будет \\?\Volume{11111111-2222-3333-4444-555555555555}\

То есть ОС берет на себя работу с файловой системой, я из своей программы открываю там файлы как обычно, работаю с ними как обычно, а другие процессы в системе даже не знают о существовании этого "диска".

Интересуют все ОС, но начинаю с винды как с наиболее распространенной платформы (хотя если вы знаете как это делать в линуксе — тоже пишите, будет полезно на будущее + правильные ключевые слова для поиска тоже пригодятся)

Приветствуются любые идеи, предложения и рассуждения на тему.
Re: Примонтировать диск экслюзивно для приложения/процесса
От: scf  
Дата: 01.09.18 17:17
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Начинаю понемногу собирать информацию для одной задумки.

XC>Соврешенно не знаю как это правильно называется и есть ли такое вообще в природе.

XC>Итак, хочется иметь возможность примонтировать некоторую файловую систему (на самом деле это будет виртуальный криптоконтейнер, монтируемый в ФС с помощью программ типа veracrypt) эксклюзивно для единственного процесса (т.е. моего процесса, запускающего эту процедуру).

XC>Никакие другие процессы и приложения не должны видеть этой ФС. Разумеется эта ФС не должна появляться в проводнике и прочее.

XC>Путь к ней разумеется может не начинаться с буквы диска, пускай будет \\?\Volume{11111111-2222-3333-4444-555555555555}\


XC>То есть ОС берет на себя работу с файловой системой, я из своей программы открываю там файлы как обычно, работаю с ними как обычно, а другие процессы в системе даже не знают о существовании этого "диска".


XC>Интересуют все ОС, но начинаю с винды как с наиболее распространенной платформы (хотя если вы знаете как это делать в линуксе — тоже пишите, будет полезно на будущее + правильные ключевые слова для поиска тоже пригодятся)


XC>Приветствуются любые идеи, предложения и рассуждения на тему.


Инжектировать в процесс свою dll и повесить хуки на файловый user-level api?
Re[2]: Примонтировать диск экслюзивно для приложения/процесса
От: x-code  
Дата: 01.09.18 22:00
Оценка:
Здравствуйте, scf, Вы писали:

scf>Инжектировать в процесс свою dll и повесить хуки на файловый user-level api?


Не понял в какой процесс и зачем.
Есть файловая система с драйвером к ней. Хоть флэшка, хоть iso образ, хоть что.
Нужно обеспечить доступ к этой ФС только для одного приложения. Типа как файл можно открыть эксклюзивно.

Понятно что можно сделать собственную реализацию API файловой системы. Но это плохо — лучше чем разработчики NTFS я все равно не сделаю, да и зачем делать если есть готовое. Нужно просто сказать винде "не давай доступ к этому никому кроме моего процесса".
Мне кажется что эксклюзивный доступ к логическому диску должен быть, и возможно это что-то достаточно простое.
Всякое там форматирование по идее так работает...
Доступ (даже для чтения) к некоторым разделам возможен только для администратора, или только для системы.
Re[3]: Примонтировать диск экслюзивно для приложения/процесса
От: loginx  
Дата: 02.09.18 09:16
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Здравствуйте, scf, Вы писали:


scf>>Инжектировать в процесс свою dll и повесить хуки на файловый user-level api?


XC>Не понял в какой процесс и зачем.

XC>Есть файловая система с драйвером к ней. Хоть флэшка, хоть iso образ, хоть что.
XC>Нужно обеспечить доступ к этой ФС только для одного приложения. Типа как файл можно открыть эксклюзивно.

XC>Понятно что можно сделать собственную реализацию API файловой системы. Но это плохо — лучше чем разработчики NTFS я все равно не сделаю, да и зачем делать если есть готовое. Нужно просто сказать винде "не давай доступ к этому никому кроме моего процесса".

XC>Мне кажется что эксклюзивный доступ к логическому диску должен быть, и возможно это что-то достаточно простое.
XC>Всякое там форматирование по идее так работает...
XC>Доступ (даже для чтения) к некоторым разделам возможен только для администратора, или только для системы.

админ и система это юзера, а ты про процессы, процесс же чейто, вот ему и дай доступ стандартно, а остальным юзерам ограничь
Re: Примонтировать диск экслюзивно для приложения/процесса
От: Pzz Россия https://github.com/alexpevzner
Дата: 03.09.18 17:08
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Начинаю понемногу собирать информацию для одной задумки.

XC>Соврешенно не знаю как это правильно называется и есть ли такое вообще в природе.

Эта идея впервые появилась в Plan 9. Там это описывается следующим образом: каждый процесс имеет свой собственный личный namespace (ведь монтирование файловый систем в операционке, в которой "все есть файл" формирует именно что пространство имен процесса), который наследуется при порождении дочерных процессов, но на namespace родутеля дочерний процесс повлиять не может. Соответственно, например, когда пользователь входит в систему, процесс, отвечающий за допуск пользователей, формирует пользовательский namespace и запускает shell, и ничего лишнего пользователю просто просто не показывают.

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