Configuré una nueva caja ec2 ubuntu e instalé apache y php5. De forma predeterminada, inicia sesión en el cuadro con el ubuntu
usuario que tiene sudo
privilegios.
Creo que Apache se ejecuta como root
y php5 se ejecuta como www-data
.
Creo que quiero que todos los archivos /var/www
se cambien a www-data:www-data
, y las carpetas se establezcan como 755 y los archivos como 644, a menos que haya un problema con eso.
Las cosas funcionan bien así, pero mi problema es que cuando rsync
archivo desde mi computadora portátil al servidor, cambia la propiedad de ellos (y agrega nuevos archivos) comoubuntu:admin
Revisé el rsync
manual y busqué en Google, y vi una sintaxis como:
rsync -avzcO (source) (destination) --owner=www-data --group=www-data
Sin embargo, parece que --owner
no --group
aceptan un argumento, sino que están destinados a forzar que los archivos remotos tengan el mismo propietario que en el sistema de archivos local si rsync se realiza como superusuario.
Entonces, no he encontrado una solución con rsync para configurar el usuario remoto y el grupo de archivos durante rsync.
¿Qué estoy haciendo mal?
Pensamientos:
- ¿Quizás mis archivos en /var/www deberían ser propiedad de
ubuntu:admin
? - Quizás tengo mal la sintaxis de rsync
- Supongo que podría rsync como
www-data
usuario, pero no parece una buena idea. - Podría usar suPHP como lo haría en un host compartido, pero eso parece bastante problemático.
Respuesta1
No quieres que sean propiedad de www-data. Apache inicialmente se ejecuta como root y luego otorga privilegios a www-data. No desea que el usuario propietario de los procesos de Apache pueda escribir en su contenido web. Esto crea una vulnerabilidad de seguridad.
En caso de que Apache sea violado, lo ideal es que el usuario de www-data no tenga acceso a nada del sistema. Esta es la configuración más segura. Si el contenido web es propiedad de www-data, si Apache tiene fallas, el atacante puede sobrescribir cualquier contenido web.
Su contenido web debe ser propiedad de un usuario normal (esto excluye nobody
a www-data
y root
). Sólo cosas quenecesidadPara que Apache pueda escribirlo debe ser propiedad de www-data.