javascript - 如何在 Node 中以特定使用者建立子進程?
我想使用子進程來執行一個 Java 文件。問題是我不希望這段程式碼只能在特定資料夾中具有讀寫權限。所以我在考慮以特定使用者身份來執行這段程式碼。這在 Node 中可行嗎?
這是我擁有的基本程式碼:
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 工作,但我也可以在 Ubuntu 上運行這段程式碼。
順便說一下,我知道即使這可以做到,如果檔案是由使用者寫入的,仍然會有安全問題。但這不是我想要問的 :)
答案#1
您可以按照這裡的 Node 文件中所述,設置進程的使用者身份(uid)。例如:
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);
});
