Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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 :)

like image 225
Paul Fournel Avatar asked Sep 28 '22 03:09

Paul Fournel


1 Answers

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);
});
like image 85
snozza Avatar answered Oct 03 '22 01:10

snozza