在GO(v1.7)
该解决方案在于使用GO的网络和系统呼叫功能的组合。打开特权端口并确定UID后,我们可以识别所需的用户,获取其UID,并使用glibc functions setGid()和setUID()和setUID()设置UID和GID。绑定端口后立即执行此代码很重要,但是在调用http.serve。提供的代码段演示此方法很重要。它首先加载必要的TLS证书并在特权端口上听。如果应用程序作为root运行,则通过使用GLIBC调用设置UID和GID来降级到指定的用户。随后,它会听取传入的请求并为Web内容提供服务。此解决方案有效地解决了在GO应用程序中删除特权的需求。它允许在不损害安全性的情况下创建安全且可靠的自定义网络服务器。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3