使用具有root访问权限的nodejs执行shell命令

Mic*_*ajj 2 shell sudo node.js

我想在 NodeJs 应用程序中执行以下 shell 命令。如果我手动完成工作,命令如下:

sudo su
password
1 command that needs a root access
exit
Run Code Online (Sandbox Code Playgroud)

任何想法或代码片段都会有帮助

kn_*_*van 7

您可以通过参考将所有 4 个命令合并为一个:超级用户答案

echo "<password>" | sudo -S "<command that needs a root access>"
Run Code Online (Sandbox Code Playgroud)

在您的 NodeJs 代码中 - 尝试以下操作之一:

  • 纯JS方式
var command='echo "<password>" | sudo -S "<command that needs a root access>"';
child_process.execSync(command)
Run Code Online (Sandbox Code Playgroud)
  • 使用库shell-exec - 使用 child_process.spawn 的帮助程序库
const shellExec = require('shell-exec')
var command='echo "<password>" | sudo -S "<command that needs a root access>"';
shellExec('echo Hi!').then(console.log).catch(console.log)
Run Code Online (Sandbox Code Playgroud)

在触发执行之前,请务必验证需要执行的命令,以避免出现不需要的结果。