当我运行Node HTTP服务器应用程序时,我通常会调用自定义函数
function runAsWWW()
{
try
{
process.setgid('www-data');
process.setuid('www-data');
} catch (err)
{
console.error('Cowardly refusal to keep the process alive as root.');
process.exit(1);
}
}
Run Code Online (Sandbox Code Playgroud)
从 server.listen(8080,'localhost',null,runAsWWW);
所以服务器实际上作为www-data用户运行,以提供更好的安全性.当我通过发布启动Golang Web服务器时,我能做些类似的事情go run index.go吗?
不可以.你不能在go中可靠地setuid或setgid,因为这对多线程程序不起作用.
您需要通过某种类型的主管(例如supervisord,runit,monit)或通过init系统直接启动程序作为目标用户.
| 归档时间: |
|
| 查看次数: |
761 次 |
| 最近记录: |