Node setuid 在 Docker Apline 上崩溃



我在Alpine 3.7 Docker镜像中运行Node 6。 以下命令:

node -e "process.setuid(1002)"

生成分段错误(核心转储(的崩溃。 我尝试使用节点 10,但出现相同的错误。 1002 是有效用户。我尝试过其他几个用户,但没有成功。

我的 docker 映像在具有"容器优化操作系统 66-10452.89.0 稳定"默认操作系统(生产(的 Google 计算引擎实例上运行。

(免责声明:我是Adélie Linux的项目负责人。

Node.js 将其 I/O 线程堆栈大小设置为PTHREAD_STACK_MIN,这不足以处理信号。 musl libc 使用信号来实现setuid因为 Linux 内核系统调用在多线程软件中具有不安全的行为。

在Adélie Linux上,我们已经修补了Node,以确保这不会导致崩溃。

Docker内部的setuid很棘手。您不能与正确的用户一起启动 Node.js 进程吗?

相关内容

  • 没有找到相关文章

最新更新