v1.7 の Golang での権限の削除
問題:
カスタマイズされた Web の設計Go のサーバーでは、ポート 80 にバインドするには初期 root 権限が必要です。ただし、それが望ましいです。できるだけ早く root 権限を放棄してください。
Background:
Go の syscall.SetUid() は問題 #1435 により利用できず、直接権限を削除するのは現実的ではありません。 IPtables などの代替方法では、セキュリティの脆弱性が生じます。
解決策:
Go 言語は、外部ツールや回避策に依存せずに、この問題に対する解決策を提供します。カスタム コードを実装することで、必要なポートにバインドし、その後 root 権限を削除できます。
実装:
利点:
このアプローチにより、柔軟な権限管理が可能になります。たとえば、開発中、アプリケーションは追加の設定を行わずに非 root ユーザーおよび高ポートで実行できます。
コード例:
package main import ( "crypto/tls" "log" "net/http" "os/user" "strconv" "syscall" ) func main() { //... (continued) }
次のようにします。手順を実行すると、Go アプリケーションの権限を効果的に削除でき、安全でユーザー固有の実行環境を確保できます。
以上がGo Web サーバーでポート 80 にバインドした後、root 権限を安全に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。