Powered by Linux
Powered by Linux

Añadir usuario al grupo www-data

A la hora de instalar un servidor web solemos querer que nuestro usuario (no root), pueda añadir, editar y modificar ficheros en el directorio /var/www/html, por lo que necesitamos agregarlo al grupo al que pertenecen esos directorios que en este caso es www-data.

Lo primero que haremos es asegurarnos que todo lo que se encuentra en /var/www pertenece al grupo www-data, para ello nos desplazaremos al directorio /var y ejecutaremos el siguiente comando:

ls -lah |grep www

Esto en mi caso me ha devuelto:

boscolopez@dev:/var$ ls -lah |grep www
drwxrwxr-x  4 root www-data 4,0K ago 23 08:46 www

Por tanto si pertenece al grupo www-data, en caso contrario ejecutaríamos el siguiente comando, el cual, podéis ejecutar sin ningún problema para aseguraros.

sudo chgrp -R www-data /var/www

El siguiente paso será modificar los permisos de /var/www para que los usuarios que pertenezcan al grupo www-data puedan escribir.

sudo chmod -R g+w /var/www

Desde este momento todos los ficheros y directorios que se creen bajo la ruta /var/www se crearán con el grupo www-data por tanto todos los miembros que pertenezcan a ese grupo podrán editarlos, eliminarlos o añadir nuevos ficheros.

Para mostrar esto más claro os lo enseñaré con un ejemplo.

boscolopez@dev:/var/www/vhosts/gestionit.boscolopez.net$ ls -lah
total 32K
drwxrwxr-x 6 www-data   www-data 4,0K ago 23 09:33 .
drwxrwxr-x 3 www-data   www-data 4,0K ago 23 08:46 ..
drwxrwxr-x 2 boscolopez www-data 4,0K ago 23 09:27 css
drwxrwxr-x 2 boscolopez www-data 4,0K ago 23 08:58 funciones
drwxrwxr-x 9 boscolopez www-data 4,0K ago 23 09:34 img
-rw-rw-r-- 1 boscolopez www-data 6,7K ago 23 09:38 index.php
drwxrwxr-x 5 boscolopez www-data 4,0K ago 23 09:34 js

Tengo dado de alta en mi servidor de desarrollo un Virtual Host con un pequeño proyecto que estoy desarrollando y que todos los ficheros que he cargado por lo de ahora han sido con mi usuario boscolopez, pero también quiero que el usuario developer me ayude (consideremos que developer, fuese un compañero nuestro).

 

Crear usuario y añadirlo al grupo www-data

  • Creamos el usuario developer
sudo adduser developer
  • Añadimos el usuario developer al grupo www-data
sudo usermod -a -G www-data developer
  • Si el usuario developer tiene la sesión iniciada, le deberemos solicitar que cierre sesión.
  • Con el usuario developer creamos un fichero en el Virtual Host anterior
touch /var/www/vhosts/gestionit.boscolopez.net/pruebas.php
developer@dev:/var/www/vhosts/gestionit.boscolopez.net$ ls -lah
total 32K
drwxrwsr-x 6 www-data   www-data 4,0K ago 31 12:56 .
drwxrwsr-x 3 www-data   www-data 4,0K ago 23 08:46 ..
drwxrwsr-x 2 boscolopez www-data 4,0K ago 23 09:27 css
drwxrwsr-x 2 boscolopez www-data 4,0K ago 23 08:58 funciones
drwxrwsr-x 9 boscolopez www-data 4,0K ago 23 09:34 img
-rw-rw-r-- 1 boscolopez www-data 6,7K ago 23 09:38 index.php
drwxrwsr-x 5 boscolopez www-data 4,0K ago 23 09:34 js
-rw-rw-r-- 1 developer  www-data    0 ago 31 12:54 pruebas.php
  • Editaremos el fichero pruebas.php con el usuario boscolopez a modo de «trabajo en equipo» y guardamos.
boscolopez@dev:/var/www/vhosts/gestionit.boscolopez.net$ nano pruebas.php
boscolopez@dev:/var/www/vhosts/gestionit.boscolopez.net$ ls -lah
total 36K
drwxrwsr-x 6 www-data www-data 4,0K ago 31 12:58 .
drwxrwsr-x 3 www-data www-data 4,0K ago 23 08:46 ..
drwxrwsr-x 2 boscolopez www-data 4,0K ago 23 09:27 css
drwxrwsr-x 2 boscolopez www-data 4,0K ago 23 08:58 funciones
drwxrwsr-x 9 boscolopez www-data 4,0K ago 23 09:34 img
-rw-rw-r-- 1 boscolopez www-data 6,7K ago 23 09:38 index.php
drwxrwsr-x 5 boscolopez www-data 4,0K ago 23 09:34 js
-rw-rw-r-- 1 developer www-data 9 ago 31 12:58 pruebas.php

Fijaros que el fichero pruebas.php sigue siendo del usuario developer y del grupo www-data, ahora volveremos a modificarlo con el usuario developer.

developer@dev:/var/www/vhosts/gestionit.boscolopez.net$ nano pruebas.php
developer@dev:/var/www/vhosts/gestionit.boscolopez.net$ ls -lah
total 36K
drwxrwsr-x 6 www-data   www-data 4,0K ago 31 13:00 .
drwxrwsr-x 3 www-data   www-data 4,0K ago 23 08:46 ..
drwxrwsr-x 2 boscolopez www-data 4,0K ago 23 09:27 css
drwxrwsr-x 2 boscolopez www-data 4,0K ago 23 08:58 funciones
drwxrwsr-x 9 boscolopez www-data 4,0K ago 23 09:34 img
-rw-rw-r-- 1 boscolopez www-data 6,7K ago 23 09:38 index.php
drwxrwsr-x 5 boscolopez www-data 4,0K ago 23 09:34 js
-rw-rw-r-- 1 developer  www-data  257 ago 31 13:00 pruebas.php

Con estos pasos creo que queda aclarada la parte de ficheros, pero… ¿Con directorios también funciona?

  • Creamos un directorio con el usuario developer y dentro de este directorio un fichero
developer@dev:/var/www/vhosts/gestionit.boscolopez.net$ mkdir classes
developer@dev:/var/www/vhosts/gestionit.boscolopez.net$ cd classes/
developer@dev:/var/www/vhosts/gestionit.boscolopez.net/classes$ touch classes.php
developer@dev:/var/www/vhosts/gestionit.boscolopez.net/classes$ ls -lah
total 8,0K
drwxrwsr-x 2 developer www-data 4,0K ago 31 13:02 .
drwxrwsr-x 7 www-data  www-data 4,0K ago 31 13:02 ..
-rw-rw-r-- 1 developer www-data    0 ago 31 13:02 classes.php

Ahora veamos si el usuario boscolopez puede añadir ficheros sobre ese directorio y modificar el fichero classes.php

boscolopez@dev:/var/www/vhosts/gestionit.boscolopez.net$ cd classes/
boscolopez@dev:/var/www/vhosts/gestionit.boscolopez.net/classes$ nano classes.php
boscolopez@dev:/var/www/vhosts/gestionit.boscolopez.net/classes$ ls -lah
total 12K
drwxrwsr-x 2 developer www-data 4,0K ago 31 13:03 .
drwxrwsr-x 7 www-data  www-data 4,0K ago 31 13:02 ..
-rw-rw-r-- 1 developer www-data   82 ago 31 13:03 classes.php
boscolopez@dev:/var/www/vhosts/gestionit.boscolopez.net/classes$ touch oauth.php
boscolopez@dev:/var/www/vhosts/gestionit.boscolopez.net/classes$ ls -lah
total 12K
drwxrwsr-x 2 developer  www-data 4,0K ago 31 13:04 .
drwxrwsr-x 7 www-data   www-data 4,0K ago 31 13:02 ..
-rw-rw-r-- 1 developer  www-data   82 ago 31 13:03 classes.php
-rw-rw-r-- 1 boscolopez www-data    0 ago 31 13:04 oauth.php

Espero que sea de ayuda y que resuelva todas esas dudas que se tienen sobre si en una misma web pueden trabajar distintos usuarios.

Sobre Bosco López

/dev/null

Te puede interesar también

Notificaciones de Nagios vía Telegram

En este artículo veremos como configurar nuestro Nagios para que nos informe de las distintas …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.