Buenas, me encuentro con el siguiente escenario.
He instalado una Xubuntu y he empezado a usarla en mis desarrollos webs. He instalado Apache2, PHP y Mysql (junto a phpmyadmin). Me di cuenta que tenía problemas con los permisos de usuarios pues el usuario de Apache es www-data por lo que cogi la carpeta /var/www/html y le dí cambié el usuario y el grupo a www-data.
Para no tener problemas con Thunar y mi usuario, añadí mi usuario (con el que inicio session en XFCE) al grupo de www-data y le di los permisos 775 a los directorios y 664 a los ficheros para no tener problemas sobre todo con los permisos del grupo.
El problema que tengo es que, al añadir nuevos ficheros obviamente mi usuario aparece en la creación de dichos ficheros y tengo que estar cambiando recursivamente los ficheros de dueño. Así mismo si uso programas como Koala (para escribir los less a css de forma automática) o el mismo git o svn, el usuario de los archivos que se crean obviamente es el de mi usuario por lo que otra vez de nuevo me obliga a cambiar los permisos del usuario.
Estoy evitando por todos los medios ir por la solución fácil que sería cerrar por iptables el puerto 80 (ya que es un servidor local de desarrollo) y meterle el 777 a todos los ficheros y directorios aunque no se si es lo más correcto.
Existe alguna solución más correcta ante este problema?
Gracias desde ya!
Resolucion final
Los comentarios que me habéis dejado me han sido de mucha utilidad. He probado watchers y me pareció bueno pero tuve problemas con el tema de ser root para el chown.
Me habéis dejado más propuestas que practicamente es lo mismo que he terminado haciendo pero haciendo uso de un grupo extra. Al final he tenido que terminar eligiendo una respuesta valida cuando es mentira, tanto la de white como la de Leonardo son muy válidas y me han ayudado muchísimo. Agradezco enormemente vuestro tiempo :)
Al final he hecho lo siguiente:
Añado nuevo grupo y meto los dos usuarios en el mismo grupo:
groupadd www-pub
usermod -a -G www-pub david
usermod -a -G www-pub www-data
Todos los usuarios del directorio los establezco para root:www-pub
chown -R root:www-pub /var/www/html
Establezco los permisos de directorios y ficheros recursivamente:
find /var/www -type d -exec chmod 2775 {} +
find /var/www -type f -exec chmod 0664 {} +
y listo! el umask no he necesitado cambiarlo porque por defecto el sistema ya lo tenía colocado a 0002 (lo que me indicaba Leonardo)
El enfoque que hace White es prácticamente el mismo solo que usando otros comandos con los que nunca me he manejado (si bien es cierto que he descubierto Watcher y ya le tengo el ojo echado para planes futuros)
De verdad, muchísimas gracias a ambos por vuestra dedicación. Eternamente agradecido :)
Me apoyé de aqui: http://serverfault.com/questions/6895/whats-the-best-way-of-handling-permissions-for-apache2s-user-www-data-in-var