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

问题描述 投票:0回答:1

我正在开发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);

如何修改? 谢谢大家

node.js exec stdin child-process
1个回答
0
投票

我们有同样的问题,需要执行root用户操作,但不希望应用程序以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, exiting\n" + err.message, [err.stack]);
            process.exit();
        }
    }

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

© www.soinside.com 2019 - 2024. All rights reserved.