我正在开发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);
如何修改? 谢谢大家
我们有同样的问题,需要执行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();
}
}
我知道这不是您想要的,但也许可以解决您的问题。