gpt4 book ai didi

javascript - 使用 Node.JS 创建一个无法访问任何以上级别文件的子进程?

转载 作者:行者123 更新时间:2023-11-28 19:06:09 25 4
gpt4 key购买 nike

我正在尝试开发一个 Node.JS 应用程序,允许用户创建自己的 Node 应用程序,这些应用程序作为主 Node.JS 应用程序的子进程运行。我遇到的问题是我不知道如何只授予相应的子进程访问和执行其自己的文件夹内的文件的权限,例如。我不希望子进程能够看到其他用户的文件。

我认为我可以在它自己的文件夹中运行子进程,并且只允许从随附的文件和主 Node.JS 应用程序(父级)访问此文件夹。

我不知道如何做到这一点,但我认为我可以通过使用 chmod 来做到这一点,但我不知道它到底是如何工作的,而且我不确定我如何才能只允许从父进程和封闭文件访问,而不是从其他任何地方访问?

我附上了一张图表,说明了我希望数据流如何发生,以防我没有正确解释:

enter image description here

非常感谢!

最佳答案

您在问题中提到了 chmod,因此我假设您使用的是类似 *nix 的操作系统。

您可以使用 chroot jail为了这。有一个 npm 模块 chroot ,这可以提供帮助。以下是他们文档中的示例:

Bind a TCP server to a privileged port before dropping privileges.

var net = require('net');
var chroot = require('chroot');

var server = net.createServer();
server.listen(80, function(err) {
if (err) { throw err; }

try {
chroot('/var/empty', 'nobody');
console.log('changed root to "/var/empty" and user to "nobody"');
} catch(err) {
console.error('changing root or user failed', err);
process.exit(1);
}
});

第一个参数是子进程应视为“根”的位置。

关于javascript - 使用 Node.JS 创建一个无法访问任何以上级别文件的子进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31636849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com