Configurar la propiedad y los permisos del archivo

En este tema se explica cómo establecer permisos de lectura y escritura para el grupo de servidores web antes de instalar Adobe Commerce. Esto es necesario para que la línea de comandos pueda escribir archivos en el sistema de archivos.

El procedimiento que utilice es diferente, dependiendo de si está utilizando o no alojamiento compartido y tener un usuario o si utiliza un servidor privado y tienen dos usuarios.

Definir permisos para un usuario en un alojamiento compartido

En esta sección se explica cómo establecer permisos previos a la instalación si inicia sesión en el servidor de aplicaciones con el mismo usuario que también ejecuta el servidor web. Este tipo de configuración es común en entornos de alojamiento compartido.

Para establecer permisos antes de instalar la aplicación:

  1. Inicie sesión en el servidor de aplicaciones.

  2. Utilice una aplicación de administrador de archivos proporcionada por el proveedor de alojamiento compartido para comprobar que los permisos de escritura están establecidos en los siguientes directorios:

    • vendor (Instalación del compositor o del contenedor comprimido)
    • app/etc
    • pub/static
    • var
    • generated
    • Cualquier otro recurso estático
  3. Si tiene acceso desde la línea de comandos, introduzca los siguientes comandos en el orden mostrado:

    code language-bash
    cd <app_root>
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type f -exec chmod u+w {} +
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type d -exec chmod u+w {} +
    
    code language-bash
    chmod u+x bin/magento
    

    Para introducir de forma opcional todos los comandos en una línea, introduzca lo siguiente suponiendo que la aplicación esté instalada en /var/www/html/magento2:

    code language-bash
    cd /var/www/html/magento2 && find var generated vendor pub/static pub/media app/etc -type f -exec chmod u+w {} + && find var generated vendor pub/static pub/media app/etc -type d -exec chmod u+w {} + && chmod u+x bin/magento
    
  4. Si aún no lo ha hecho, obtenga la aplicación de una de las siguientes maneras:

  5. Después de establecer la propiedad y los permisos del sistema de archivos, instalar la aplicación

NOTE
Para restringir aún más los permisos después de instalar la aplicación, puede configuración de una máscara umask.

Establecer la propiedad y los permisos para dos usuarios

En esta sección se explica cómo establecer la propiedad y los permisos para su propio servidor o para una configuración de alojamiento privada. En este tipo de configuración, normalmente no puede inicie sesión como usuario del servidor web o cambie a él. Normalmente, se inicia sesión como un usuario y se ejecuta el servidor web como un usuario diferente.

Para establecer la propiedad y los permisos para un sistema de dos usuarios:

Complete las siguientes tareas en el orden mostrado:

Acerca del grupo compartido

Para permitir que el servidor web escriba archivos y directorios en el sistema de archivos, pero también para mantener propiedad por el propietario del sistema de archivos, ambos usuarios deben estar en el mismo grupo. Esto es necesario para que ambos usuarios puedan compartir el acceso a los archivos (incluidos los archivos creados con el administrador u otras utilidades basadas en la web).

En esta sección se explica cómo crear un propietario del sistema de archivos y colocar a ese usuario en el grupo del servidor web. Si lo desea, puede utilizar una cuenta de usuario existente; por motivos de seguridad, le recomendamos que disponga de una contraseña segura.

NOTE
Pasar a Búsqueda del grupo de usuarios del servidor web si planea utilizar una cuenta de usuario existente.

Cree el propietario del sistema de archivos y proporcione al usuario una contraseña segura

En esta sección se explica cómo crear el propietario del sistema de archivos. (el propietario del sistema de archivos es otro término para usuario de línea de comandos.)

Para crear un usuario en CentOS o Ubuntu, introduzca el siguiente comando como usuario con root privilegios:

adduser <username>

Para proporcionar al usuario una contraseña, introduzca el siguiente comando como usuario con root privilegios:

passwd <username>

Siga las indicaciones de la pantalla para crear una contraseña de usuario.

WARNING
Si no tiene… root en su servidor de aplicaciones, puede utilizar otra cuenta de usuario local. Asegúrese de que el usuario tenga una contraseña segura y continúe con Coloque el propietario del sistema de archivos en el grupo de servidores web.

Por ejemplo, para crear un usuario denominado magento_user y escriba una contraseña para el usuario:

sudo adduser magento_user
sudo passwd magento_user
WARNING
Dado que el objetivo de crear este usuario es proporcionar seguridad adicional, asegúrese de crear un contraseña segura.

Búsqueda del grupo de usuarios del servidor web

Para buscar el grupo del usuario del servidor web:

  • CentOS:

    code language-bash
    grep -E -i '^user|^group' /etc/httpd/conf/httpd.conf
    

    o

    code language-bash
    grep -Ei '^user|^group' /etc/httpd/conf/httpd.conf
    

Normalmente, el nombre de usuario y el nombre de grupo son apache.

  • Ubuntu: ps aux | grep apache para encontrar al usuario de Apache, haga lo siguiente groups <apache user> para encontrar el grupo.

Normalmente, el nombre de usuario y el nombre del grupo son www-data.

Coloque el propietario del sistema de archivos en el grupo de servidores web

Para colocar al propietario del sistema de archivos en el grupo principal del servidor web (suponiendo el nombre de grupo Apache típico para CentOS y Ubuntu), introduzca el siguiente comando como usuario con root privilegios:

  • CentOS: usermod -a -G apache <username>
  • Ubuntu: usermod -a -G www-data <username>
NOTE
El -a -G Las opciones de son importantes porque agregan apache o www-data as a secundario a la cuenta de usuario, que conserva el principal grupo. Añadir un grupo secundario a una cuenta de usuario ayuda a restringir la propiedad y los permisos de archivos para garantizar que los miembros de un grupo compartido solo tengan acceso a determinados archivos.

Por ejemplo, para agregar al usuario magento_user a la apache grupo principal en CentOS:

sudo usermod -a -G apache magento_user

Para confirmar que el usuario es miembro del grupo de servidores web, introduzca el siguiente comando:

groups magento_user

El siguiente resultado de ejemplo muestra el principal (magento) y secundaria (apache) grupos.

magento_user : magento_user apache
NOTE
Normalmente, el nombre de usuario y el nombre del grupo principal son el mismo.

Para completar la tarea, reinicie el servidor web:

  • Ubuntu: service apache2 restart
  • CentOS: service httpd restart

Obtener el software

Si aún no lo ha hecho, obtenga el software de una de las siguientes maneras:

Establecer la propiedad y los permisos para el grupo compartido

Para establecer la propiedad y los permisos antes de instalar la aplicación:

  1. Inicie sesión en el servidor de aplicaciones como propietario del sistema de archivos o cambie a.

  2. Introduzca los siguientes comandos en el orden mostrado:

    code language-bash
    cd <app_root>
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
    
    code language-bash
    chown -R :<web server group> .
    
    code language-bash
    chmod u+x bin/magento
    

Para introducir de forma opcional todos los comandos en una línea, introduzca lo siguiente suponiendo que la aplicación esté instalada en /var/www/html/magento2 y el nombre del grupo de servidores web es apache:

cd /var/www/html/magento2 && find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + && find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + && chown -R :apache . && chmod u+x bin/magento

En el sistema de archivos de evento, los permisos se establecen incorrectamente y el propietario del sistema de archivos no los puede cambiar, puede introducir el comando como usuario con root privilegios:

cd /var/www/html/magento2 && sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + && sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + && sudo chown -R :apache . && sudo chmod u+x bin/magento

Cambiar al propietario del sistema de archivos

Después de haber realizado las demás tareas de este tema, escriba uno de los siguientes comandos para cambiar a ese usuario:

  • Ubuntu: su <username>
  • CentOS: su - <username>

Por ejemplo,

su magento_user
recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995