我正在开发一个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();
}
}
我知道这不是你想要的,但也许可以解决你的问题。