seteuid在node.js中
我怎样才能临时删除Node.js的根权限?
我可以看到标准库中的process.setuid
,但没有seteuid
,它不能是临时的。 试图再次获得root权限失败。
我不认为在Node.js程序中更改特权真的很有意义,因为您不知道什么时候会处理不同的IO请求。 你可能会改变权限,提交IO,改回来,在将来的某个时候IO将会被执行 – 大概是在当时运行的权限。
我可以想象一种机制,将euid,egid和补充组与特定的IO请求联系起来,但是与目前的devise相比,这可能是一个非常复杂的情况,没有什么好处。
您可以采取的一种方法是使用Cluster
生成新的进程,更改权限,然后在完成后退出该进程。 你也可以让它长寿,通过一个内部队列处理请求,但是fork(2)
速度很快 ,希望Node.js在fork(2)
上的shim不是太昂贵。
你可以使用node-posix模块的seteuid
方法。 对于创build单个文件这样一个简单的任务,我可以想象,你使用writeFileSync
包围调用seteuid
,作为你原来的想法可能是。