Permisos de acceso a sistemas de archivos
En esta sección se explica cómo configurar el propietario o los propietarios del sistema de archivos de Commerce para un sistema de desarrollo y producción. Antes de continuar, revise los conceptos mencionados en Información general sobre la propiedad y los permisos del sistema de archivos.
Este tema se centra en los sistemas de desarrollo y producción de Commerce. Si va a instalar Commerce, consulte Establecer la propiedad y los permisos previos a la instalación.
En las secciones siguientes se describen los requisitos de uno o dos propietarios de sistemas de archivos. Esto significa que:
-
Un usuario: normalmente es necesario en proveedores de alojamiento compartido, que le permiten tener acceso a un solo usuario en el servidor. Este usuario puede iniciar sesión, transferir archivos mediante FTP y también ejecuta el servidor web.
-
Dos usuarios: recomendamos dos usuarios si ejecuta su propio servidor de Commerce: uno para transferir archivos y ejecutar utilidades de línea de comandos y otro para el software del servidor web. Cuando sea posible, es preferible porque es más seguro.
En su lugar, tiene usuarios independientes:
-
El usuario del servidor web, que ejecuta el administrador y la tienda.
-
Un usuario de línea de comandos, que es una cuenta de usuario local que puede usar para iniciar sesión en el servidor. Este usuario ejecuta trabajos cron de Commerce y utilidades de la línea de comandos.
-
Propiedad del sistema de archivos de producción para el alojamiento compartido (un usuario)
Para utilizar la configuración de un solo propietario, debe iniciar sesión en el servidor de Commerce con el mismo usuario que ejecuta el servidor web. Esto suele ocurrir en el alojamiento compartido.
Dado que tener un propietario del sistema de archivos es menos seguro, le recomendamos que implemente Commerce en producción en un servidor privado en lugar de en un alojamiento compartido, si es posible.
Configurar un propietario para el modo predeterminado o de desarrollador
En modo predeterminado o de desarrollador, el usuario debe poder escribir en los siguientes directorios:
vendor
app/etc
pub/static
var
- Cualquier otro recurso estático
generated/code
generated/metadata
var/view_preprocessed
Puede establecer estos permisos mediante la línea de comandos o una aplicación de administrador de archivos proporcionada por su proveedor de alojamiento compartido.
Configuración de un propietario para el modo de producción
Cuando esté listo para implementar el sitio en producción, debe quitar el acceso de escritura de los archivos en los siguientes directorios para mejorar la seguridad:
vendor
app/code
app/etc
pub/static
- Cualquier otro recurso estático
generated/code
generated/metadata
var/view_preprocessed
Para actualizar componentes, instalar componentes nuevos o actualizar el software de Commerce, todos los directorios anteriores deben ser de lectura y escritura.
Hacer que los archivos y directorios de código sean de sólo lectura
Para quitar permisos de escritura a archivos y directorios del grupo del usuario del servidor web:
-
Inicie sesión en el servidor de Commerce.
-
Cambie al directorio de instalación de Commerce.
-
Cambie al modo de producción.
code language-bash bin/magento deploy:mode:set production
-
Quite los permisos de escritura en los siguientes directorios.
code language-bash find app/code var/view_preprocessed vendor pub/static app/etc generated/code generated/metadata \( -type f -or -type d \) -exec chmod u-w {} + && chmod o-rwx app/etc/env.php
-
Hacer ejecutable la herramienta de línea de comandos.
code language-bash chmod u+x bin/magento
Hacer que los archivos y directorios de código puedan escribirse
Para hacer que los archivos y directorios se puedan escribir para actualizar componentes y actualizar el software de Commerce:
-
Inicie sesión en el servidor de Commerce.
-
Cambie al directorio de instalación de Commerce.
-
Introduzca los siguientes comandos:
code language-bash chmod -R u+w .
Conjunto opcional magento_umask
Consulte Establecer opcionalmente una máscara de usuario en la Guía de instalación.
Propiedad del sistema de archivos de producción para el alojamiento privado (dos usuarios)
Si utiliza su propio servidor (incluida la configuración del servidor privado de un proveedor de alojamiento), hay dos usuarios:
-
El usuario del servidor web, que ejecuta el administrador y la tienda.
Los sistemas Linux normalmente no proporcionan un shell para este usuario; no puede iniciar sesión en el servidor de Commerce como usuario del servidor web ni cambiar a él.
-
El usuario de línea de comandos, con el que inicia sesión en el servidor de Commerce o cambia a.
Commerce utiliza este usuario para ejecutar comandos de CLI y cron.
note info INFO El usuario de la línea de comandos también se conoce como propietario del sistema de archivos.
Puesto que estos usuarios necesitan acceso a los mismos archivos, le recomendamos que cree un grupo compartido al que ambos pertenezcan. Los siguientes procedimientos suponen que ya lo ha hecho.
Consulte una de las siguientes secciones:
- Dos propietarios del sistema de archivos en modo de desarrollador o predeterminado
- Dos propietarios del sistema de archivos en modo de producción
Configurar dos propietarios para el modo predeterminado o de desarrollador
Los usuarios deben poder escribir en los archivos de los siguientes directorios en modo de desarrollador y predeterminado:
var
generated
pub/static
pub/media
app/etc
Establezca el bit setgid
en los directorios para que los permisos siempre hereden del directorio principal.
setgid
se aplica solamente a directorios, no a archivos.Además, el grupo de servidores web debe poder escribir en los directorios. Dado que el contenido puede existir en estos directorios, agregue los permisos de forma recursiva.
Establecer permisos y setgid
Para establecer setgid
y permisos para el modo de desarrollador:
-
Inicie sesión en el servidor de Commerce como propietario del sistema de archivos o cambie a.
-
Introduzca los siguientes comandos en el orden mostrado:
code language-bash cd <magento_root>
code language-bash find var generated pub/static pub/media app/etc -type f -exec chmod g+w {} +
code language-bash find var generated pub/static pub/media app/etc -type d -exec chmod g+ws {} +
Dos propietarios del sistema de archivos en modo de producción
Cuando esté listo para implementar el sitio en producción, debe quitar el acceso de escritura de los archivos en los siguientes directorios para mejorar la seguridad:
vendor
app/code
app/etc
lib
pub/static
- Cualquier otro recurso estático
generated/code
generated/metadata
var/view_preprocessed
Hacer que los archivos y directorios de código sean de sólo lectura
Para quitar los permisos de escritura en archivos y directorios del grupo del usuario del servidor web:
-
Inicie sesión en el servidor de Commerce.
-
Cambie al directorio de instalación de Commerce.
-
Como propietario del sistema de archivos, introduzca el siguiente comando para cambiar al modo de producción:
code language-bash bin/magento deploy:mode:set production
-
Escriba el siguiente comando como usuario con privilegios de
root
:code language-bash find app/code lib pub/static app/etc generated/code generated/metadata var/view_preprocessed \( -type d -or -type f \) -exec chmod g-w {} + && chmod o-rwx app/etc/env.php
Hacer que los archivos y directorios de código puedan escribirse
Para hacer que los archivos y directorios se puedan escribir para actualizar componentes y actualizar el software de Commerce:
-
Inicie sesión en el servidor de Commerce.
-
Cambie al directorio de instalación de Commerce.
-
Introduzca el siguiente comando:
code language-bash find app/code lib var generated vendor pub/static pub/media app/etc \( -type d -or -type f \) -exec chmod g+w {} + && chmod o+rwx app/etc/env.php