Heim > Artikel > Betrieb und Instandhaltung > 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 installFehlerursache: Unter Linux können normale Benutzer nur Ports über 1024 verwenden, und Ports innerhalb von 1024 können nur von Root-Benutzern verwendet werden4 . 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 logs5. 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 httpdund es kann normal starten, es wird kein Fehler gemeldet 6. Versuchen Sie, auf
[sims20@bcd-app01 bin]$ ./apachectl startund 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'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 rootWenn 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
[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 aspire12. 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 httpdzuzugreifen, 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!