如何以特定用户的身份使用Node创建子进程

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

本文关键字:Node 创建 子进程 身份 用户      更新时间:2023-09-26

我想使用子进程来执行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上运行代码。

顺便说一下,我知道即使可以这样做,如果文件是由用户写的,仍然会有安全问题。但这不是我想要的:)

您可以在节点文档中指定进程的用户标识(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);
});