ホームページ > 運用・保守 > Apache > Apacheを一般ユーザーで起動する方法

Apacheを一般ユーザーで起動する方法

王林
リリース: 2020-08-28 16:10:36
転載
4295 人が閲覧しました

Apacheを一般ユーザーで起動する方法

ターゲット:

(推奨チュートリアル: apache)

一般ユーザーがコンパイルした Apache は、このユーザー Apache で起動する必要がありますポート 1024 より下のポート。

1. 通常のユーザーが sims20 であるとします。このユーザーを使用して Apache をコンパイルしてインストールします。インストール パスは /opt/aspire/product/sims20/apache

./configure --prefix=/opt/aspire/product/sims20/apache   --enable-so --enable-modules=all   --enable-mods-shared=all   --enable-mods-shared='proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http proxy_rewrite'
make  
make install
ログイン後にコピー

2 です。コンパイルが完了しました。http.conf のリスニング ポートは 80

3 に設定します。通常のユーザー sims20

  [sims20@bcd-app01 bin]$ ./apachectl  start
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
ログイン後にコピー

で直接開始します。エラーの原因: Linux では、通常のユーザーは上記のポートのみを使用できます。 1024、および 1024 内のポート このポートは root ユーザーのみが使用できます

4. setuid を使用して問題を解決し、httpd が root 権限で実行できるようにします

root ユーザーとして「/opt/aspire/product/sims20/apache/bin」と入力し、chown root httpd と chmod u s httpd をそれぞれ使用して、httpd の所有者を root に設定し、特別な権限を設定します

[root@bcd-app01 bin]# ls  -l  httpd
-rwxr-xr-x 1 sims20 aspire 3517470  3月 15 17:12 httpd
[root@bcd-app01 bin]# chown root  httpd
[root@bcd-app01 bin]# ls  -l  httpd
-rwxr-xr-x 1 root aspire 3517470  3月 15 17:12 httpd
[root@bcd-app01 bin]# chmod u+s httpd
[root@bcd-app01 bin]# ls  -l  httpd
-rwsr-xr-x 1 root aspire 3517470  3月 15 17:12 httpd
ログイン後にコピー

5。一般ユーザー sims20 で apache を起動します

[sims20@bcd-app01 bin]$ ./apachectl  start
ログイン後にコピー

Yes 正常に起動し、エラーは報告されませんでした

6.

 [sims20@bcd-app01 bin]$ curl  http://10.24.12.159:80
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don&#39;t have permission to access /
on this server.</p>
</body></html>
ログイン後にコピー

にアクセスしようとすると、403 禁止エラー

7 が報告されましたプロセス

[sims20@bcd-app01 bin]$ ps  -ef |grep httpd
root      7841     1  0 17:24 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
daemon    7844  7841  0 17:24 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
daemon    7845  7841  0 17:24 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
daemon    7846  7841  0 17:24 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
daemon    7847  7841  0 17:24 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
daemon    7848  7841  0 17:24 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    8006  3026  0 17:29 pts/4    00:00:00 grep httpd
ログイン後にコピー

がデーモン ユーザーからどのように実行されたかを確認すると、httpd メイン プロセスがまだ root ユーザーの権限で実行されており、その子プロセスはより低い権限を持つユーザーとして実行されることがわかります。この低い権限のユーザー デーモンは http.conf

8 で構成されており、http.conf で構成し、ユーザーを root

User daemon
Group daemon
ログイン後にコピー

から

User root
Group root
ログイン後にコピー
に変更します。

9. apache

[sims20@bcd-app01 bin]$ ./apachectl  restart
Syntax error on line 76 of /opt/aspire/product/sims20/apache/conf/httpd.conf:
Error:\tApache has not been designed to serve pages while\n\trunning as root.  
There are known race conditions that\n\twill allow any local user to read any file on the system.\n\tIf you still desire to serve pages as root then\n\tadd -DBIG_SECURITY_HOLE to the CFLAGS env variable\n\tand then rebuild the server.\n\tIt is strongly suggested that you instead modify the User\n\tdirective in your httpd.conf file to list a non-root\n\tuser.\n
ログイン後にコピー
## を通常のユーザーとして再度起動します #いいえ、パラメータを使用して再コンパイルする必要があります


10. http.conf の設定を再度変更し、変更しますユーザーを通常のユーザーに変更します

##

User sims20
Group aspire
ログイン後にコピー

11 に変更します。通常のユーザー sims20

[sims20@bcd-app01 bin]$ ./apachectl  start
[sims20@bcd-app01 bin]$ ps  -ef  |grep  httpd
root      9720     1  0 18:09 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    9721  9720  0 18:09 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    9722  9720  0 18:09 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    9723  9720  0 18:09 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    9724  9720  0 18:09 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    9725  9720  0 18:09 ?        00:00:00 /opt/aspire/product/sims20/apache/bin/httpd -k start
sims20    9739  3026  0 18:09 pts/4    00:00:00 grep httpd
ログイン後にコピー

12 で Apache を再度起動します。

[sims20@bcd-app01 bin]$ curl  http://10.248.12.159:80
<html><body><h1>It works!</h1></body></html>
ログイン後にコピー
# にアクセスしてみます。 ## 成功しました。

以上がApacheを一般ユーザーで起動する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート