我在Alpine 3.7 Docker镜像中运行Node 6。 以下命令:
node -e "process.setuid(1002)"
崩溃,生成分段错误(核心转储)。 我尝试过使用Node 10但是我得到了同样的错误。 1002是有效用户。我和其他几个用户一起尝试过没有成功。
我的泊坞窗图片在Google Compute Engine实例上运行,其中包含"容器优化的操作系统66-10452.89.0 stable"默认操作系统(生产)。
答案 0 :(得分:0)
(免责声明:我是AdélieLinux的项目负责人。)
Node.js将其I / O线程堆栈大小设置为PTHREAD_STACK_MIN
,不足以处理信号。 musl libc使用信号来实现setuid
,因为Linux内核syscall在多线程软件中具有不安全的行为。
在Adélie Linux,我们已经patched Node确保不会造成崩溃。
答案 1 :(得分:-1)
setuid
很棘手。你不能用合适的用户启动Node.js流程吗?