Lorsque j'exécute la ps -efH
commande pour répertorier tous les processus, je peux voir Apache s'exécuter en tant que root
et semble avoir des sous-processus en cours d'exécution www-data
. Voici l'extrait:
root 30117 1 0 09:10 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 30119 30117 0 09:10 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 30120 30117 0 09:10 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 30121 30117 0 09:10 ? 00:00:00 /usr/sbin/apache2 -k start
Puis-je faire fonctionner Apache et tous les sous-processus en tant qu'utilisateur différent apache2d:apache2d
? Si c'est le cas, comment? J'ai lu quelque part que les paramètres pour cela peuvent être trouvés /etc/apache2/httpd.conf
mais ce fichier semble être vide? Cela peut-il être accompli en changeant le propriétaire et le groupe du /etc/init.d/apache2
script, puis en définissant l'indicateur setuid dessus?
la source
@bahamat l'explique assez bien, mais j'ajouterai un peu plus de détails.
Au cours d'un fonctionnement normal, le processus apache appartenant à la racine n'effectuera aucune opération réelle autre que l'écoute sur le port 80 et la transmission des connexions entrantes à ses
www-data
enfants (en toute sécurité non privilégiés, en tant qu'utilisateur).L'emplacement du fichier de configuration principal dépend des options de compilation et varie selon la distribution, mais
/etc/apache2/apache2.conf
c'est une bonne idée de départ.De plus, si vous configurez un système d'hébergement Web multi-utilisateurs, vous souhaiterez peut-être examiner SuExec et fcgid afin que le processus apache de chaque utilisateur d'hébergement Web s'exécute en tant qu'utilisateur - de sorte que si un utilisateur néglige sa sécurité, d'autres les utilisateurs ne seront pas affectés.
la source
Dans Ubuntu au moins, les paramètres pour cela sont là
/etc/apache2/envvars
. Modifiez-les, puis redémarrez apache et vous êtes prêt à fonctionner.la source
Consultez également Apache2 ITK MPM .
Il bifurque un thread Apache avec le
uid
/ attribuégid
, cela vous permet de continuer à utilisermod_php
. Pluschmod
/chown
etc.la source
mpm_itk
lequel une amélioration significative par rapport à suexec / fcgidMac OS X:
Ce qui a fonctionné pour moi va dans le fichier de configuration apache:
Dans ce fichier, j'ai recherché un utilisateur ou un groupe
et heurté:
Je l'ai changé en n'importe quel utilisateur / groupe dont j'avais besoin (dans mon cas, l'utilisateur / groupe qui est le propriétaire de mes fichiers d'application Web que vous pouvez voir. Et cela, vous pouvez le vérifier en utilisant le simple 'ls -l' commander)
la source