root 権限を持たずに 1024 以下のポートをバインドする
Issue
- プロセスが bind() システムコールを呼び出すと、bind() は EACCESS でエラーを返します。
- 1024 以下で TCP ポートを開くと、"Permission denied" エラーが発生するのはなぜですか?
- 通常のユーザーが 1024 以下でポートをバインドするにはどうしたら良いですか?
- JBoss をポート 443 にバインドさせるにはどうしたら良いですか?
- root 以外のユーザーとして、JBoss web コンテナー HTTPS をポート 443 に設定またはバインドするにはどうしたら良いですか?
- デフォルトポート
443にアプリケーションがアクセスして、内部的に別のポートに転送されるように JBoss を設定するにはどうしたら良いですか? - 1024 より数が少ないポート (たとえば 443) で実行しようとすると、以下のようなエラーが JBoss server.log に表示されます。
17:56:09,044 ERROR [Http11AprProtocol] Error initializing endpoint
java.lang.Exception:Socket bind failed:[13] Permission denied
at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:610)
at org.apache.coyote.http11.Http11AprProtocol.init(Http11AprProtocol.java:107)
...
...
17:56:09,047 ERROR [AbstractKernelController] Error installing to Start: name=WebServer state=Create
LifecycleException:Protocol handler initialization failed: java.lang.Exception:Socket bind failed:[13] Permission denied
at org.apache.catalina.connector.Connector.initialize(Connector.java:1031)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:683)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:821)
Environment
- Red Hat Enterprise Linux
- 5
- 4
- Red Hat JBoss Enterprise Application Platform (EAP)
- 5.x
- 6.x
- Red Hat JBoss Enterprise Web Server (EWS)
- Tomcat
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
