在node.js中,如何使用exec中的sudo命令自动输入密码



我正在开发一个Node.js程序,遇到了一个问题。

我尝试使用stdin.write在exec中自动输入sudo的密码,但似乎不起作用。

我不想以root身份运行我的程序。

这是我的代码:

var SUDO_PASSWORD = '123456';
var command = 'sudo echo "1" > test.txt';
var child = require('child_process').exec(command);
child.on('exit', function() {
    console.log('in exit');
    return 'OK';
});
child.stdin.write(SUDO_PASSWORD);

如何修改?谢谢大家。

我们也有同样的问题,需要进行根操作,但不希望应用程序使用根prvileges运行。因此,我们从root启动应用程序,然后使用删除root权限

 if (!/^win|^darwin/i.test(require('os').platform())) {
        try {
            console.log('I am ' + process.getuid());
            process.setgid('user');
            process.setuid('user');
            console.log('I now am ' + process.getuid());
        } catch (err) {
            console.error("Unable to drop root privileges, exitingn" + err.message, [err.stack]);
            process.exit();
        }
    }

我知道这不是你想要的,但也许可以解决你的问题。

相关内容

  • 没有找到相关文章

最新更新