在NodeJS中删除root权限似乎没有效果

问题描述 投票:0回答:1

我想在启动时拥有 root 权限,然后再删除它们。后台是在Ubuntu 24.04上用NodeJS编写的服务器,需要读入私钥。我按照 这些说明 使用

process.setgid()
process.setuid()
,之后提升权限不起作用。 但我看到
process.env
没有更新。它仍然显示用户为 root,但字段
SUDO_USER
SUDO_UID
SUDO_GID
添加了正确的值。 好奇的是,我尝试在放弃权限后读取仅限 root 的文件,但它仍然有效。我尝试读取其他仅限 root 的文件,并且成功了。

那么我做错了什么或者我忘记了什么,因为当我仍然可以读取仅限 root 的文件时,放弃 root 权限有什么意义。

javascript node.js ubuntu security
1个回答
0
投票

您遇到的行为是版本 20.11.1 中修复的安全缺陷(Changelog)。您应该更新您的节点版本或通过仅使用环境变量运行节点来解决它

UV_USE_IO_URING=0

...之后,提升权限就不起作用了。

放弃特权后,没有机制可以重新获得它们。

但是我看到 process.env 没有更新。它仍然将用户显示为 root,但字段 SUDO_USER、SUDO_UID 和 SUDO_GID 添加了正确的值。

我不希望使用

setuid
setgid
来改变你的环境变量。存在
SUDO_*
变量是因为您正在使用
sudo
运行流程。如果您需要检查您的用户信息,可以使用
require('os').userInfo()
(docs)。

© www.soinside.com 2019 - 2024. All rights reserved.