以root身份运行文件系统操作

时间:2016-03-28 17:44:06

标签: node.js sudo sudoers

我有一个节点应用程序,它是一个worker,在本地机器上执行各种任务,包括许多文件系统操作。该应用程序从单独的控制接收任务指令"应用程序通过HTTPS。

该应用程序以非特权用户身份运行,但有时需要以root权限执行某些操作。

这些操作包括:

  • 安装和卸载驱动器
  • 格式化驱动器
  • 从有时设置文件权限的外部驱动器中读取文件,以便非特权用户无法读取它们

这些操作涉及使用child_process.exec() / .spawn()运行命令和使用fs模块执行文件系统读取操作。

显然,出于安全原因,以root身份运行整个应用程序并不明智。但它有时需要能够升级"它的root权限。

这样做的最佳方式是什么?

我已经在同一台机器上以root用户身份运行了一个单独的节点应用程序,主要的工作者应用程序可以通过HTTP进行通信并向其发送某些需要以root身份执行的命令。但是,这当然会在根应用程序上打开一个新的攻击面。当根操作从文件系统读取大文件(10-100 GB)时,这些文件也必须通过HTTP流回主工作者应用程序。

我想有一种更实用,更安全的方法来实现这一目标,可能使用sudoers。我无法想象我是第一个遇到这个问题的人,但我在网上找不到任何解决方案。

有什么想法吗?

0 个答案:

没有答案