¿Qué permisos debo otorgar a / var y / media?

Respuestas:

18

No he visto muchas menciones sobre el uso de 700 y 600, pero generalmente es un buen consejo. Lamentablemente, la configuración de cada servidor es diferente y debe sopesarse según la conveniencia (acceso del usuario para actualizar / editar archivos).

El enfoque subyacente debe ser regalar lo menos posible y bloquearlo todo lo que pueda (700/600 es bueno para esto). En ese sentido, el consejo "oficial" en el wiki quiere aplicarse a la mayor cantidad de circunstancias posible y sugiere permisos de lectura para todos (lo que significa que cualquier otro servicio comprometido en el servidor podrá, por ejemplo, leer la aplicación / etc / local. xml con su configuración de db).

En su caso, actualmente parece que los archivos son propiedad de un usuario diferente al que ejecuta su proceso de servidor web / php. Cambiar la propiedad de los archivos al servidor web debería resolver su problema original.

Tenga en cuenta que usar 700/600 y asignar los archivos al servidor web significa que su usuario normal no podrá editar los archivos.

Creo que lo siguiente es un buen compromiso para la conveniencia frente al bloqueo. Todos los archivos son propiedad del usuario: webservergroup

var y media 770/660
El servidor y su usuario pueden leer y escribir desde las carpetas var y media (sesión / caché / imágenes).

el resto 750/640
Su usuario puede editar / actualizar el código.
El servidor web puede leer los archivos para su ejecución / visualización.

Kristof en Fooman
fuente
2
Casi dos años después y ahora estoy de acuerdo con esto más que con mi propia respuesta.
philwinkle
Me di cuenta de que nunca había respondido a esto y el problema que estaba teniendo era que los archivos no eran propiedad del servidor web. También estaba pidiendo aclarar los permisos para obtener una práctica más estándar mientras leía cosas diferentes.
Egregory
18

En general, todos los archivos deberían ser 644y todas las carpetas deberían ser 755y deberían ser propiedad del usuario con el que se ejecuta su servidor web . El mageejecutable debe tener 550permisos para permitir la ejecución.

Este script de shell debería arreglar las cosas si se ejecuta desde la raíz de Mage:

#!/bin/sh
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod 550 mage

Fuente: http://www.magentocommerce.com/wiki/groups/227/resetting_file_permissions

philwinkle
fuente
5

Si bien la solución de Phil es buena, uso un enfoque un poco diferente. Además de hacer que el "usuario del servidor web / php" sea el propietario de los archivos, creo un grupo adicional. Por lo general, se llama dev . Y agrego "usuario php" y yo y otros desarrolladores para ese grupo dev . Entonces hago chgrp de manera que todos los archivos de Magento subárbol proyecto tienen grupo dev . Agrego bit + s a las carpetas que garantiza que las subcarpetas recién creadas obtengan los mismos permisos.

He creado una esencia pública con mi script fix_permissions.sh. Siéntase libre de usarlo :) Le ayuda a mantener todo el subárbol del proyecto Magento con buenos permisos.

https://gist.github.com/svenvarkel/8062778#file-fix_permissions-sh

La pregunta original: var y media deben tener tales permisos que el "usuario php" pueda leer y escribir en estas carpetas. Debe poder escribir caché, archivos de sesión, etc. en var y debe poder escribir caché de imagen del producto e imágenes en medios. Haga lo que Phil recomienda: chown o chgrp these a "php user" y otorgue permisos rw a "php user".

Creo que es más correcto referirse a "usuario php" en el contexto de FPM (CGI). El usuario del servidor web puede ser diferente de aquel que ejecuta PHP.

Sven
fuente
3
Tiene toda la razón con respecto a la terminología del usuario del servidor web frente al usuario de php. Gran punto Sin embargo, uno tiene que preguntarse si una persona preguntando cómo cambiar los permisos sabría si estaban ejecutando PHP FPM o no ...
philwinkle
1

/ var : uso de magento para escribir datos de caché, sesión, etc.

/ media : uso de magento para cargar la imagen del producto, la imagen de categoría (cualquier tipo de imagen).

Entonces, estas dos carpetas deberían tener que usar el permiso de lectura + escritura. Otro archivo que debe usar leer + permiso de ejecución.

Sohel Rana
fuente
1

El permiso de archivo es 644. Ejecute el siguiente código en el directorio raíz usando ssh. encontrar .

-type f -exec chmod 644 {} \;

El permiso de carpeta es 755. Ejecute el siguiente código en el directorio raíz usando ssh. encontrar .

-type d -exec chmod 755 {} \;

El permiso de la carpeta Var es 777. Ejecute el siguiente código en el directorio raíz usando ssh.

chmod -R 777 var

El permiso de carpeta estática es 777. Ejecute el siguiente código en el directorio raíz usando ssh.

chmod -R 777 pub/static

El permiso de la carpeta de medios es 777. Ejecute el siguiente código en el directorio raíz usando ssh.

chmod -R 777 pub/media
Abhinav Singh
fuente
2
Lo anterior no es lo que OP pidió, esto es para Magento 2.x no para Magento 1.7
Frank Groot