2015-08-01 3 views
4

Я хочу использовать дочерний процесс для выполнения файла Java. Проблема: я не хочу, чтобы этот код имел только права на чтение и запись в определенной папке. Поэтому я думал о выполнении кода как конкретного пользователя. Возможно ли это с помощью узла?Как создать дочерний процесс как конкретного пользователя с узлом?

Вот основной код у меня есть:

var exec = require('child_process').exec, child; 

exec("javac user_script/test.java&&java -classpath user_script test", function (error, stdout, stderr) { 
    console.log(stdout); 
}); 

Я работаю на Mac, но я также могу запустить код на убунту.

Кстати, я знаю, что даже если это можно сделать, все равно будут проблемы с безопасностью, если файл написан пользователем. Но это не то, о чем я прошу :)

ответ

4

Вы можете установить идентификатор пользователя (uid) процесса, как указано here, в документе узла. Например:

var exec = require('child_process').exec, child; 

exec("javac user_script/test.java&&java -classpath user_script test", {uid: 501}, function (error, stdout, stderr) { 
    console.log(stdout); 
}); 
+0

Thx, Кажется, это то, что мне нужно. Я попробую это позже сегодня. –

Смежные вопросы