Artículos para el Desarrollo Web

Permisos de lectura o escritura a la carpeta /var/www con Apache instalado en Linux para aplicaciones web PHP o Python

Publicado: 29/01/2020 21:03:45

Volver Permisos de lectura o escritura a la carpeta /var/www con Apache instalado en Linux para aplicaciones web PHP o Python
Modo de crear permisos en un sistemas Linux con un servidor Apache para acceder a la carpeta /var/www

1.    Crear un usuario www, que pertenezca al grupo www-data y que tenga como carpeta asignada /var/www y como bash /bin/bash:
sudo useradd www -d /var/www -g www-data -M -s /bin/bash


2.    Crearle una contraseña adecuada con:
sudo passwd www


3.    Cambiar el usuario y grupo propietario del contenido de la carpeta /var/www a www:www-data:
sudo chown -R www:www-data /var/www


4.    Iniciar sesión con el nuevo usuario (login www) y crear el archivo .bash_profile (nano .bash_profile), con el siguiente contenido: umask 0002, a continuación, cerrar y volver a iniciar sesión y comprobar que los directorios se crean con permisos drwxrwxr-x, y los archivos -rw-rw-r—
El propósito de esto es que no se aplique la máscara de usuario 0022, sino 0002.

5.    Si usamos ssh para conectarnos al servidor con el usuario www, editar el archivo /etc/ssh/sshd_config y editar la línea comentada como:
    
# override default of no sybsystems

para que quede como:
    
Subsystem    sftp    /usr/lib/openssh/sftp-server    -u 0002

salir guardando los cambios y reiniciar el servicio sshd:
    
systemctl reload sshd

El objetivo de esto es que al conectarnos vía sftp podamos escribir con los permisos comentados en el punto 3.

Como el servidor Apache se ejecuta con usuario y grupo www-data, al crear el usuario www, todos los archivos y directorios creados con este usuario pertenecerán a dicho grupo y además se crearán con los permisos necesarios para ejecutar aplicaciones web que necesiten crear o modificar archivos debajo de la ruta /var/www.
Volver