2010-11-30 8 views
5

Sur l'hébergement partagé DreamHost, je configure htpasswd, mais Apache n'a pas l'autorisation de lire le fichier. Comment puis-je lui donner la permission? Je veux soit changer le propriétaire ou le groupe du fichier .htpasswd au lieu de lui donner des autorisations non sécurisées. Je ne pense pas avoir accès au fichier httpd.conf, donc je ne peux pas utiliser cette méthode pour find what user Apache runs as. En outre, l'exécution top ou ps aux affiche uniquement les processus que j'exécute mais n'affiche pas le processus apache.Comment puis-je savoir quel utilisateur et quel groupe est utilisé par Apache?

Basé sur la sortie de cat /etc/passwd et cat /etc/group, je devine que c'est www-data. J'ai bien suivi les instructions pour Password-protecting directories on Dreamhost. Il a généré un répertoire avec un fichier .htpasswd avec le groupe dhapache et les permissions 440. Il a également mis un fichier .htaccess dedans avec sous mon groupe. Pour une raison quelconque, quand j'essaie chgrp dhapache test_file.txt j'obtiens chgrp: changing group of 'test_file.txt': Operation not permitted. Donc, je viens de déplacer le fichier .htpasswd que DreamHost a généré là où je le voulais et j'ai édité le fichier .htaccess qu'il a généré, malgré ses avertissements.

+0

oui, typiquement c'est "www-data: www-data" –

Répondre

10

En fait, vous n'avez pas besoin d'un accès à httpd.conf:

ps aux | grep apache2 
groups apache_user 

devrait donner ce que vous voulez

+4

Ou mieux "ps axo user, group, comm | grep apache' –

+0

Merci. Cela ne fonctionne pas sur DreamHost, mais je l'ai compris. Voir le dernier paragraphe de la question. – ma11hew28

+0

Il est un peu étrange que 'ps aux' ne fonctionne pas pour vous (puisque dreamhost lui-même déclare qu'il devrait http://wiki.dreamhost.com/PS_Optimization); Cependant, heureux que vous l'ayez fait d'une manière ou d'une autre. –

4

J'avais une question qui me conduit à une autre solution. Mais cela ne fonctionne que lorsque vous avez accès au fichier de configuration

Nous pouvons réellement vérifier l'utilisateur et le groupe dans le fichier \etc\apache2\envars. C'est là qu'Apache définit les environnements var et l'utilise dans l'application.

Rechercher ces deux lignes:

export APACHE_RUN_USER=www-data 
export APACHE_RUN_GROUP=www-data 

Notez que cette couchait les variables d'environnement. Le réglage actuel du apache pour fonctionner comme ce que l'utilisateur/groupe est en fait dans le \etc\apache2\apache2.conf

User ${APACHE_RUN_USER} 
Group ${APACHE_RUN_GROUP} 

L'emplacement des fichiers peut-être me différent, mais vous devriez avoir l'idée.

Questions connexes