Linux node.js中的seteuid

Linux node.js中的seteuid,linux,node.js,Linux,Node.js,如何临时删除Node.js中的根权限 我可以在标准库中看到process.setuid,但是如果没有seteuid,它就不能是临时的。再次尝试获取根权限失败。我认为在Node.js程序中更改权限没有意义,因为您不知道何时将处理不同的IO请求。您可能会更改权限、提交IO、更改回IO,并且在将来的某个时候会执行IO—可能是在运行IO时使用的权限下执行的 我可以想象一种机制,将euid、egid和补充组与特定IO请求联系起来,但与它们当前的设计相比,这可能是一个极其复杂的问题,没有多少好处 您可以采取

如何临时删除Node.js中的根权限


我可以在标准库中看到
process.setuid
,但是如果没有
seteuid
,它就不能是临时的。再次尝试获取根权限失败。

我认为在Node.js程序中更改权限没有意义,因为您不知道何时将处理不同的IO请求。您可能会更改权限、提交IO、更改回IO,并且在将来的某个时候会执行IO—可能是在运行IO时使用的权限下执行的

我可以想象一种机制,将euid、egid和补充组与特定IO请求联系起来,但与它们当前的设计相比,这可能是一个极其复杂的问题,没有多少好处


您可以采取的一种方法是生成具有的新流程,更改权限,然后在完成后退出该流程。您也可以让它长期存在并通过内部队列处理请求,但是
fork(2)
速度很快,希望
fork(2)
上的Node.js不会太贵。

您可以使用's
seteuid
方法。对于创建单个文件这样一个简单的任务,我可以想象您使用
writeFileSync
,周围是对
seteuid
的调用,就像您最初的想法一样。

我明白了。因为
seteuid
只能使用sync IO函数,这是不受欢迎的,所以他们没有把它放进去。我只想在不同的uid下创建一个文件。创建叉子感觉太过分了。它是?