PHP - Copiar carpetas dentro del servidor sin perder la seguridad

 
Vista:
Imágen de perfil de José Luis

Copiar carpetas dentro del servidor sin perder la seguridad

Publicado por José Luis (21 intervenciones) el 28/12/2016 22:09:04
Buenas a todos !!

A fecha de hoy entiendo que lo más seguro en nuestro servidor es tener las carpetas con permisos 755 que viene a significar que el PROPIETARIO tiene acceso total y el GRUPO y los OTROS únicamente lectura y ejecución.

Con esta configuración, al intentar copiar un archivo mediante copy() la respuesta es FALSE Permiso denegado.

Investigando un poco parece ser que PHP ejecuta los scripts con el usuario www-data (usuario por defecto de Apache). Y dicho usuario únicamente tiene lectura y ejecución. No tiene permiso de escritura.

He leído muchos foros y temas y prácticamente, en todos, la solución es asignar permisos 777 a las carpetas. Es decir, acceso total para todo el mundo, algo claramente desaconsejado por los programadores más expertos.

Algún otro programador opta por usar FTP. Realmente funciona fenomenal pero no existe ninguna función análoga a copy, algo así como ftp_copy().
Existe un ftp_mkdir(), ftp_rmdir(), ftp_rename(), ... ... pero no un ftp_copy() lamentablemente.

Entonces ¿cómo se copian archivos dentro de un mismo servidor de una carpeta a otra manteniendo la seguridad?

Lo ideal sería poder ejecutar los scripts de PHP con el usuario PROPIETARIO, no con el www-data por defecto.
¿Se puede?

¿Quizás a través de MySQL ?!?!?

¿Cómo lo hacéis vosotros?

Gracias, buenas noches !!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Copiar carpetas dentro del servidor sin perder la seguridad

Publicado por Eloy (28 intervenciones) el 07/01/2017 21:48:28
El mismo problema tenia en mi sistema en Linux/Linux Mint, opte por darle permisos root 777 a las carpetas y subcarpetas del proyecto y usar la funcion copy("$path", "$destino"); de php.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de José Luis

Copiar carpetas dentro del servidor sin perder la seguridad

Publicado por José Luis (21 intervenciones) el 17/02/2017 18:57:39
Hola Eloy, aunque es una solución, he leído que no es aconsejable por seguridad asignar esos permisos.

En mi caso, los permisos son 755, rwx r-x r-x, naturalmente el propietario debe ser distinto al usuario por defecto de Apache.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de José Luis

Copiar carpetas dentro del servidor sin perder la seguridad

Publicado por José Luis (21 intervenciones) el 17/02/2017 19:01:50
Hola, subo este post.

Usar la función copy() cambia automáticamente el dueño del archivo. El archivo que hayas copiado se lo asigna automáticamente a ww-data y además le da permiso total de lectura, escritura y ejecución.

Es decir, cada vez que copias un archivo con la función copy() dejas expuesto ese archivo a que cualquiera lo pueda manipular.

Y si intentas cambiarle los permisos con chmode() o el propietario con chown() no te deja.

¿alguien más como yo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar