Pregunta:
Tengo LAMP en Ubuntu 9.04 Server y la instalación predeterminada tiene root: root que posee la carpeta / var / www. Descubrí esto cuando otro servicio, Hudson, no pudo escribir en ese directorio. Quiero que mi usuario de hudson tenga permiso para escribir en / var / www. Entonces, ¿debería el usuario www-data ser el propietario de / var / www y hudson ser miembro del grupo www-data O debería ir con el usuario y grupo predeterminados y hacer que hudson sea miembro de root? Este último parece incorrecto. Entonces surge la pregunta, ¿qué usuario debería poseer / var / www? (Y para aquellos con mucha más experiencia que yo, dado este escenario, ¿hay algo incluso mejor que las dos soluciones que he visto?)
Respuesta:
Entonces, ¿el usuario de www-data debe ser el propietario de / var / www?
¿Por qué el proceso de apache es ejecutado por www-data, pero el / var / www es propiedad de root? ¿Existe algún riesgo de hacer que www-data sea el propietario de la carpeta y ejecute el proceso?
Su servidor web se ejecuta como www-data. Si apache tiene la capacidad de escribir en / var / www y ha configurado algo incorrectamente, o está ejecutando una aplicación web con errores, o si apache tiene un error explotable, entonces una persona malvada en Internet podría escribir cosas en / var / www. Siempre que sea posible, siempre debe otorgar a las cuentas de servicio los privilegios mínimos que necesitan para operar.
¿Hay algo mejor que las dos soluciones que he visto?
Cree un nuevo grupo y cambie la propiedad de / var / www a root: group. Agregue al grupo todos los usuarios que necesiten publicar en esa carpeta. También puede marcar la carpeta con el bit setgid y ajustar la umask de sus usuarios para que cualquier otra persona de ese grupo pueda escribir cualquier cosa que escriban en esta carpeta.