¿Cómo sabemos que un directorio es de escritura apache?

21

Me han dicho que debería crear una carpeta de imágenes y una carpeta de activos, y que necesitaba asegurarme de que: "son apache escribibles". También me han dicho que haga que el directorio app / runtime se pueda escribir en la web. ¿Es esto lo mismo que apache escribible? Si es así:

¿Cómo puedo hacer eso de una vez, o saber eso?

Haciendo ls -lalgo, obtengo algo como:

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
fuente

Respuestas:

24

Apache, es un programa que se ejecuta en segundo plano. Apache es iniciado originalmente por el usuario root(también llamado root-process). Esto root-processinicia varios procesos secundarios que manejan las solicitudes del cliente. Por razones de seguridad, los procesos secundarios no son ejecutados por el usuario rootsino como un usuario con privilegios mínimos. Por lo general, este usuario se llama apacheo www-data.

Para saber qué usuario es para apache v1:

ps -ef | grep httpd | grep -v grep

o para apache v2:

ps -ef | grep apache | grep -v grep

El resultado para apache 2 será algo como esto:

raíz 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

En este caso, el usuario / grupo es www-data

Entonces, para que el servidor web pueda escribir un directorio, debemos establecer el propietario o grupo del directorio en el propietario o grupo de Apache y habilitar el permiso de escritura para él. Por lo general, configuramos el directorio para que pertenezca al grupo Apache ( apacheo `www-data o cualquier usuario que se use para iniciar los procesos secundarios) y habilitamos el permiso de escritura para el grupo.

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

( www-dataes el nombre que encontraste con el pscomando anterior).

Respecto a:

2) También me han dicho que haga que el directorio app / runtime sea de escritura web. ¿Es esto lo mismo que apache escribible?

Sí, este es un directorio que debe configurar para que se pueda escribir en el grupo que Apache espera. Probablemente esto sea en algún lugar /var/www/o esté configurado como un host virtual en /etc/apache2/sites-enabled/y / o/etc/apache2/sites-available

Rinzwind
fuente
Muchas gracias. ¿Hay alguna manera de crear el directorio con mkdir y, al mismo tiempo, otorgar esos permisos?
MEM
¿Es cierto que también podemos hacer: chmod -R o + w / o / path / here? (la opción -R es obviamente). ?
MEM
Sí, 1 método sería:mkdir dirname && chgrp www-data dirname
Rinzwind
@MEM sí. Rhará todos los directorios desde donde emite el comando. Hay muchas maneras de hacer esto;)
Rinzwind
2
ps -ef | grep [a]pacheEs un idioma común para evitar la greplínea espuria en la salida.
enzotib