Как запустить исполняемый файл в качестве гостя или пользователя с ограниченными правами с помощью java ProcessBuilder

Допустим, я работаю от имени администратора, и у меня есть исполняемый файл c как «myProgram.exe». Я хочу выполнить его с помощью ProcessBuilder в моей программе Java.

e.g.

ProcessBuilder pb = new ProcessBuilder("myProgram.exe");
pb.start(); 

Как я могу запустить «myProgram.exe» как менее привилегированный пользователь или гость?

Почему я хочу это сделать?

Допустим, исполняемый файл (myProgram.exe) пытается удалить некоторые файлы, которые он не должен удалять, или выполнять какие-либо другие действия. Тогда его запуск под менее привилегированным пользователем не позволит ему выполнять вышеуказанные действия.

В основном я хочу запустить этот 'myProgram.exe' в тюрьме или с меньшими привилегиями.

Как я могу выполнить «myProgram.exe» как менее привилегированный пользователь программно?


person VishalDevgire    schedule 20.03.2013    source источник
comment
Он должен работать как есть, если только вашему myProgram.exe не требуются права администратора.   -  person abhinav    schedule 20.03.2013
comment
В основном я хочу запустить это в тюрьме. Если ваш код может вырваться из тюрьмы, это будет ошибка безопасности, которую быстро исправят.   -  person Andrew Thompson    schedule 20.03.2013
comment
@abhinav Итак, вы имеете в виду, что я должен запускать свою Java-программу от менее привилегированного пользователя, чтобы все остальные ее дочерние элементы также запускались в том же контексте привилегий?   -  person VishalDevgire    schedule 20.03.2013
comment
Да, точно. И поэтому, если сейчас вам exe нужны права администратора, он не запустится.   -  person abhinav    schedule 20.03.2013


Ответы (1)


Что ж, тогда вам нужен sand box. Это исполняемый файл, который запускает другой исполняемый файл в недостаточно привилегированных настройках..

см. здесь: http://www.sandboxie.com/index.php?StartCommandLine

person Aniket Inge    schedule 20.03.2013