Comment savons-nous qu'un répertoire est accessible en écriture apache?

21

On m'a dit que je devrais créer un dossier d'images et un dossier d'actifs, et que je devais m'assurer que: "ils sont accessibles en écriture apache". On m'a également dit de rendre le répertoire app / runtime accessible en écriture sur le Web. Est-ce la même chose qu'apache accessible en écriture? Si c'est le cas:

Comment puis-je le faire tout de suite, ou le savoir?

Faire un ls -lje reçois quelque chose comme:

drwxr-xr-x 13 user user 4096 2011-08-26 10:23 app
drwxr-xr-x 4 user user 4096 2011-08-26 10:23 runtime
drwxr-xr-x 2 user user 4096 2011-08-26 11:11 images
drwxr-xr-x 2 user user 4096 2011-08-26 11:12 assets
MEM
la source

Réponses:

24

Apache, est un programme fonctionnant en arrière-plan. Apache est initialement démarré par l'utilisateur root(également appelé root-process). Cela root-processlance plusieurs processus enfants qui gèrent les demandes des clients. Pour des raisons de sécurité, les processus enfants ne sont pas exécutés par l'utilisateur rootmais en tant qu'utilisateur avec des privilèges minimaux. Habituellement, cet utilisateur est nommé apacheou www-data.

Pour savoir de quel utilisateur il s'agit pour apache v1:

ps -ef | grep httpd | grep -v grep

ou pour apache v2:

ps -ef | grep apache | grep -v grep

Le résultat pour apache 2 sera quelque chose comme ceci:

racine 5001 1 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5021 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5022 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5023 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start

Dans ce cas, l'utilisateur / groupe est www-data

Ainsi, afin de rendre un répertoire accessible en écriture par le serveur Web, nous devons définir le propriétaire ou le groupe du répertoire sur le propriétaire ou le groupe d'Apache et activer l'autorisation d'écriture pour celui-ci. Habituellement, nous définissons le répertoire pour appartenir au groupe Apache ( apacheou `www-data ou tout autre utilisateur utilisé pour lancer les processus enfants) et activons l'autorisation d'écriture pour le groupe.

chgrp www-data /path/to/mydir
chmod g+w /path/to/mydir

( www-dataest le nom que vous avez trouvé avec la pscommande ci-dessus).

En ce qui concerne:

2) On m'a également dit de rendre le répertoire app / runtime accessible en écriture sur le Web. Est-ce la même chose qu'apache accessible en écriture?

Oui, c'est un répertoire que vous devez définir en écriture pour le groupe qu'Apache attend. Ce sera probablement quelque part dans /var/www/ou il est défini comme un hôte virtuel dans /etc/apache2/sites-enabled/et / ou/etc/apache2/sites-available

Rinzwind
la source
Merci beaucoup. Existe-t-il un moyen de créer le répertoire avec mkdir et en même temps, d'accorder ces autorisations?
MEM
Est-il vrai que nous pouvons aussi faire: chmod -R o + w / ou / path / here? (l'option -R étant évidemment). ?
MEM
Oui 1 méthode serait:mkdir dirname && chgrp www-data dirname
Rinzwind
@MEM oui. Rfera tous les répertoires d'où vous émettez la commande. Il y a beaucoup de façons de le faire;)
Rinzwind
2
ps -ef | grep [a]pacheest un idiome commun pour éviter la grepligne parasite dans la sortie.
enzotib