Maison  >  Article  >  Opération et maintenance  >  Comment démarrer Apache sous un utilisateur ordinaire

Comment démarrer Apache sous un utilisateur ordinaire

王林
王林avant
2020-08-28 16:10:364262parcourir

Comment démarrer Apache sous un utilisateur ordinaire

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&#39;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

9. Redémarrez Apache en tant qu'utilisateur normal

[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

Non, vous devez recompiler avec les paramètres


10. Modifiez à nouveau la configuration dans http.conf et changez l'utilisateur en utilisateur normal

en


User sims20
Group aspire

11. Redémarrez Apache avec l'utilisateur ordinaire 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. 🎜> avec succès.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer