291 votes

Découvrir sous quel utilisateur Apache fonctionne?

Je veux sécuriser un répertoire de téléchargement de fichiers sur mon serveur comme décrit ici, mais j'ai un problème avant de pouvoir suivre ces instructions. Je ne sais pas en tant quel utilisateur Apache s'exécute.

J'ai trouvé une suggestion selon laquelle vous pouvez regarder dans httpd.conf et qu'il y aura une ligne "Utilisateur", mais il n'y a pas une telle ligne dans mon fichier httpd.conf, donc je suppose qu'Apache s'exécute en tant qu'utilisateur par défaut. Je ne peux cependant pas savoir qui c'est.

Alors, ma question est (sont) :

  • comment puis-je savoir qui est l'utilisateur par défaut
  • dois-je modifier l'utilisateur par défaut
  • si la réponse est oui et que je modifie l'utilisateur par défaut en éditant httpd.conf, est-il probable que cela causera des problèmes ?

Merci!

17 votes

Pourquoi cette question a-t-elle été downvotée? Oui, elle a été mise à jour car elle a obtenu une réponse ailleurs, mais je ne vois pas pourquoi la downvoter? C'est une question parfaitement valable? Peut-être que notre downvoter pourrait ajouter un commentaire constructif à ce sujet?

2 votes

Vous voudrez peut-être publier cette mise à jour en tant que réponse et l'accepter, car vous êtes actuellement dans la file d'attente des réponses non résolues.

12 votes

+1 pour avoir été réprimandé sur StackOverflow; certains utilisateurs semblent insister pour décourager les nouveaux utilisateurs

303voto

grufftech Points 6592

ps aux | egrep '(apache|httpd)' montrera généralement sous quel utilisateur apache fonctionne.

En général, vous n'avez pas besoin de modifier l'utilisateur par défaut, "nobody" ou "apache" conviennent généralement. Tant que ce n'est pas "root" ;)

modification : commande plus précise pour détecter les binaires apache également

63 votes

Oui, sinon ce sera www-data sur Ubuntu.

12 votes

...et Debian. :)

15 votes

Cette commande me montre une liste de choses, la plupart provenant de apache mais 1 de root aussi.

69voto

nowthatsamatt Points 853

Vous pouvez essayer la commande suivante:

ps -ef | egrep '(httpd|apache2|apache)' | grep -v `whoami` | grep -v root | head -n1 | awk '{print $1}'

3 votes

J'adore cette réponse, meilleure (plus générique) que la réponse la plus votée. Merci

0 votes

VÉRIFIEZ CETTE RÉPONSE au lieu de celle qui a reçu le plus de votes.

4 votes

Vous masquez littéralement des lignes de l'utilisateur root, ce qui signifie que si Apache tourne en tant que root, eh bien, il n'affiche rien. De même pour l'utilisateur actuellement connecté.

57voto

Kyaw Points 561

Utilisez apachectl -S, qui affichera quelque chose comme l'utilisateur et le groupe Apache, comme ceci :

User: name="_www" id=70
Group: name="_www" id=70

2 votes

Merci, sur mon mac je vois que Apache tourne en tant que '_www'.

4 votes

Ceci est une bonne réponse, car c'est la commande qui vous donne beaucoup plus d'informations sur votre serveur web en cours d'exécution et qui le présente de manière exhaustive.

1 votes

Étrangement, sur Mac, bien qu'il s'affiche comme '_www', vous utilisez 'www' sans le tiret bas pour diverses commandes (notamment chown). Au fait, cela varie en fonction de la version de MacOs/Apache/Paquet Apache. C'est '_www' sur mon MacOs Big Sur avec Apache 2.4.38 de MacPorts. C'était 'staff' sur les anciennes versions, et je pense que c'est différent si vous utilisez Homebrew.

16voto

Kevin Points 304

Selon ubuntuforums.org, sous Ubuntu, l'utilisateur par défaut pour apache2 est www-data.

Semble être vrai sur Ubuntu 13.10 Saucy.


De Lars Noodén sur le forum ci-dessus.

Pour être sûr de ce que [l'utilisateur] est réellement défini, vérifiez les fichiers de configuration réels. Le fichier ombrelle, apache2.conf, aura quelque chose comme ce qui suit,

Utilisateur ${APACHE_RUN_USER}
Groupe ${APACHE_RUN_GROUP}

C'est une référence aux variables d'environnement définies dans /etc/apache2/envvars. mod_suexec permet également aux scripts d'être exécutés en tant qu'un utilisateur et groupe différents.

Pour trouver des hôtes virtuels qui peuvent utiliser des utilisateurs, des groupes ou les deux, vérifiez les configurations.

$ egrep "^Utilisateur|^Groupe|^SuexecUserGroup" /etc/apache2/apache2.conf /etc/apache2/sites-available/*.conf

Pour les distributions basées sur Red Hat, il s'agira (habituellement son utilisateur exécutant httpd est apache) :

$ egrep "^Utilisateur|^Groupe|^SuexecUserGroup" /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*.conf

12voto

Massif Points 2427

Je sais que c'est un ancien post, mais il est toujours répertorié comme non résolu, donc je vais faire une suggestion. Si vous ne trouvez pas quel utilisateur ou groupe Apache est en cours d'exécution, essayez peut-être d'ouvrir le fichier httpd.conf. Il devrait y avoir une entrée pour "Utilisateur" et "Groupe". Non seulement vous pouvez voir quel utilisateur Apache est censé être exécuté en tant que, mais vous pouvez le changer si vous en ressentez le besoin.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X