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

1

6

I want to use a child process to execute a Java file. The problem I do not want this code to only have read and write permissions in a specific folder. So I was thinking of executing the code as specific user. Is this possible with node?

Here is the basic code I have:

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);
});

I am working on a mac, but I can also run the code on ubuntu.

By the way, I know that even if this can be done it will still have security issues if the file is written by a user. But this is not what I am asking for :)

Linares answered 1/8, 2015 at 9:47 Comment(0)
S
6

You can set the user identity (uid) of the process as specified here in the node docs. For example:

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);
});
Stope answered 1/8, 2015 at 10:28 Comment(1)
Thx, It seems to be what I need. I will try it out later today.Linares

© 2022 - 2024 — McMap. All rights reserved.