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

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

王林
王林転載
2020-08-28 16:10:364256ブラウズ

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 までご連絡ください。