Cible :
(Tutoriel recommandé : apache)
Apache compilé par des utilisateurs ordinaires doit être démarré sous cet utilisateur Apache ports situés sous le port 1024.
1. Supposons que l'utilisateur ordinaire soit sims20. Utilisez cet utilisateur pour compiler et installer un Apache. Le chemin d'installation est /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. la compilation est terminée, définissez Le port d'écoute de http.conf est 80
3 Démarrez directement avec l'utilisateur ordinaire 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
Cause de l'erreur : sous Linux, les utilisateurs ordinaires ne peuvent utiliser que les ports ci-dessus. 1024 et ports inférieurs à 1024 Le port ne peut être utilisé que par l'utilisateur root
4 Utilisez setuid pour résoudre le problème, afin que httpd puisse être exécuté avec les autorisations root
Connectez-vous en tant qu'utilisateur. utilisateur root et entrez /opt/aspire/product/ sims20/apache/bin, utilisez chown root httpd, chmod u+s httpd respectivement pour définir le propriétaire de httpd sur root et les autorisations spéciales
[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. entrez l'utilisateur ordinaire sims20, démarrez Apache
[sims20@bcd-app01 bin]$ ./apachectl start
Peut démarrer normalement, aucune erreur signalée
6 Essayez d'accéder à
[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>
Rapport 403 Erreur interdite
. 7. Regardez comment le processus
[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
s'exécute. L'utilisateur démon est absent. Il s'avère que le processus principal httpd s'exécute toujours avec les autorisations de l'utilisateur root et que ses processus enfants s'exécuteront en tant qu'utilisateur. avec des autorisations inférieures. Ce démon utilisateur aux autorisations inférieures est configuré dans http.conf
8. Configurez-le dans http.conf et changez l'utilisateur en root
User daemon Group daemon
en
<. 🎜>
User root Group root
[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
User sims20 Group aspire
[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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!