Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So starten Sie Apache unter einem normalen Benutzer

So starten Sie Apache unter einem normalen Benutzer

王林
王林nach vorne
2020-08-28 16:10:364255Durchsuche

So starten Sie Apache unter einem normalen Benutzer

Ziel:

(Empfohlenes Tutorial: Apache)

Der von normalen Benutzern kompilierte Apache muss unter diesem Benutzer Apache-Ports unterhalb von Port 1024 starten.

1. Nehmen Sie an, dass der normale Benutzer sims20 ist. Der Installationspfad ist /opt/aspire/product/sims20/apache

2 Port von http.conf auf 80

3. Beginnen Sie direkt mit normalen Benutzern sims20

./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

Fehlerursache: Unter Linux können normale Benutzer nur Ports über 1024 verwenden, und Ports innerhalb von 1024 können nur von Root-Benutzern verwendet werden

4 . Verwenden Sie setuid, um das Problem zu lösen, damit httpd mit Root-Rechten ausgeführt werden kann. Melden Sie sich als Root-Benutzer an, geben Sie /opt/aspire/product/sims20/apache/bin ein, verwenden Sie chown root httpd, chmod u+s httpd zum Festlegen der Besitzer von httpd auf Root und Sonderberechtigungen

  [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

5. Geben Sie den normalen Benutzer sims20 erneut ein, starten Sie Apache

[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

und es kann normal starten, es wird kein Fehler gemeldet

6. Versuchen Sie, auf

[sims20@bcd-app01 bin]$ ./apachectl  start

und einen 403 zuzugreifen Es wird ein verbotener Fehler gemeldet

7. Sehen Sie sich den Prozess an

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

Wie entkommt man dem Daemon-Benutzer? Es stellt sich heraus, dass der Hauptprozess httpd immer noch mit den Berechtigungen des Root-Benutzers ausgeführt wird und seine untergeordneten Prozesse als ausgeführt werden Ein Benutzer mit niedrigeren Berechtigungen, und dieser Benutzerdaemon mit niedrigeren Berechtigungen ist in http.conf konfiguriert

8, konfigurieren Sie ihn in http.conf, ändern Sie den Benutzer von root

[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

in

User daemon
Group daemon

9. Starten Sie Apache wie gewohnt Benutzer erneut

User root
Group root

Wenn es nicht funktioniert, müssen Sie mit den Parametern neu kompilieren

10. Erneut ändern. Konfigurieren Sie es in http.conf und ändern Sie den Benutzer in einen normalen Benutzer

bis

[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

11. Starten Sie Apache erneut mit dem normalen Benutzer sims20

User sims20
Group aspire

12. Versuchen Sie, auf

[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

zuzugreifen, und es gelingt.

Das obige ist der detaillierte Inhalt vonSo starten Sie Apache unter einem normalen Benutzer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen