如何使用 Node 创建一个子进程作为特定用户?

How to create a Child process as a specific user with Node?

我想使用子进程来执行 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,但我也可以 运行 ubuntu 上的代码。

顺便说一句,我知道即使可以做到,如果文件是由用户编写的,它仍然会存在安全问题。但这不是我要的:)

您可以按照节点文档中指定的 here 设置进程的用户身份 (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);
});