Golang 刪除權限(v1.7)
在建立自訂Web 伺服器時,您遇到了刪除伺服器權限的挑戰同時綁定到連接埠80,這需要root 存取權限。雖然替代解決方案可能涉及重新路由連接埠 80,但這會帶來安全風險。如何有效解決這個問題?
根據提供的回應,Go 提供了一個全面的解決方案,允許您打開端口,檢測 UID,如果它為 0,則搜尋所需的用戶並檢索UID。隨後,您可以利用 glibc 呼叫來設定進程的 UID 和 GID。
綁定連接埠後立即呼叫 setuid 程式碼的重要性至關重要。與 http.ListenAndServe(TLS) 不同?輔助函數,您需要獨立建立 net.Listener 並呼叫 setuid post 連接埠綁定,但在初始化 http.Serve 之前。
提供的程式碼片段有效地示範了這種方法。它包括 SSL 實現,並允許您在高連接埠上使用非根 UID 在「開發」模式下運行,而不會遇到複雜情況。請記住透過設定位址、連接埠、使用者、群組和 TLS 檔案名稱來個人化設定檔。
以上是Go 應用程式在綁定到 80 連接埠後如何安全地放棄權限?的詳細內容。更多資訊請關注PHP中文網其他相關文章!