Hola Mastermind, gracias por responder.
A ver, si tienes razón el usuario es de Apache, eso esta claro. Pero si un script de PHP tiene que crear, modificar archivos en el directorio web, osea un ejemplo:
/var/www/html/site.com. Ese directorio es de root, por eso no puede escribir en él.
Además también hago modificaciones con mi usuario, que no es root. Yo root lo gasto para poco.
He visto esta solución:
1- sudo usermod -a -G developer user1 (agregar cada usuario al grupo de desarrolladores)
2-sudo chgrp -R developer /var/www/site.com/ para que los desarrolladores puedan trabajar allí
3- sudo chmod -R 2774 /var/www/site.com/ por lo que sólo los desarrolladores pueden crear/editar archivos (otro/mundo puede Lee)
4-sudo chgrp -R www-data /var/www/site.com/uploads para que pueda crear www-data (apache/nginx) ficheros.
Osea, por lo que yo entiendo es, 'por que no lo entiendo todo':
1-Crear un grupo de desarrollo y agregar ahí mi usuario no root.
2-Poner como propietario del directorio al grupo de desarrollo.
3-Poner permisos de escritura,lectura ejecución al usuario y grupo propietario y sólo lectura a otros.(aqui tego la duda de porque hay un 2 delante del 774 si es octal,¿no debería haber un 0, osea 0774)
4- Crea dentro de /var/www/site.com un directorio 'uploads' para que el usuario de apache pueda crear archivos.
Esta solución parece más elegante. Alguna opinión