>운영 및 유지보수 >Apache >일반 사용자로 아파치를 시작하는 방법

일반 사용자로 아파치를 시작하는 방법

王林
王林앞으로
2020-08-28 16:10:364317검색

일반 사용자로 아파치를 시작하는 방법

목표:

(권장 튜토리얼: apache)

일반 사용자가 컴파일한 Apache는 이 사용자에서 포트 1024 아래에서 Apache 포트를 시작해야 합니다.

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 이내의 포트는 루트 사용자만 사용할 수 있습니다

4 . 문제를 해결하려면 setuid를 사용하여 httpd가 루트 권한으로 실행될 수 있도록

루트 사용자로 로그인하고 /opt/aspire/product/sims20/apache/bin을 입력하고 chown root httpd, chmod u+s httpd를 사용하여 설정하세요. httpd의 소유자는 루트 및 특수 권한

[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

를 시작하면 정상적으로 시작할 수 있으며 오류는 보고되지 않습니다

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 프로세스는 여전히 루트 사용자의 권한으로 실행되고 있으며 하위 프로세스는 다음과 같이 실행됩니다. 더 낮은 권한을 가진 사용자와 이 낮은 권한 사용자 데몬은 http.conf

8 에 구성되어 있으며 http.conf에서 구성하고 사용자를 root

User daemon
Group daemon

에서

User root
Group root

9로 변경합니다. user again

[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>

에 액세스하면 성공합니다.

위 내용은 일반 사용자로 아파치를 시작하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제