Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Mover ficheros en el servidor (https://www.clubdelphi.com/foros/showthread.php?t=90234)

mblascog 30-04-2016 19:26:45

Mover ficheros en el servidor
 
Buenas,
Estoy desarrollando un pequeño programa para organizar los documentos en un servidor linux.
Ya he conseguido crear todas las carpetas, asignar los permisos, .... con el componente idFTP de Indy. Ahora quería mover unos ficheros que están en el directorio raíz, a uno de los que acabo de crear y no veo como hacerlo.
He probado con PUT, pero es para subir ficheros. RENAME me da error, SITE, de la misma manera que asigno los permisos a las carpetas con chmod he intentado con mv, y tampoco.

Alguna sugerencia? Gracias

Casimiro Notevi 30-04-2016 21:16:28

¿Mover por FTP desde un equipo remoto?
Explícate mejor, porque no se entiende exactamente qué preguntas.

mblascog 01-05-2016 00:48:27

Buenas,
Pues esto, que he creado unos directorios en el servidor, usando el componente idFTP de las Indy. En dicho servidor tengo unos ficheros y me gustaría moverlos a uno de estos directorios acabados de crear y no sé como hacerlo

Gracias.

Casimiro Notevi 01-05-2016 00:54:29

Seguramente puedes usar Rename
Código Delphi [-]
TIdFTP.Rename(sSrc, sDst).

mblascog 01-05-2016 09:20:13

Muchas, muchas gracias

mblascog 01-05-2016 11:06:30

Muchas, muchas gracias. Ha funcionado perfectamente.
Sigo en el hilo porqué me ha surgido un último problema. Quisiera cambiar los privilegios de los ficheros y/o carpetas que acabo de mover con Rename y me pasa lo siguiente:
- estas carpetas y/o usuarios tienen un mismo propietario y un mismo grupo, ambos con todos los privilegios (rwx)
- desde el programa de Delphi, el componente idFTP lo tengo configurado con un usuario que pertenece al grupo.
No tengo permisos para cambiar los permisos (valga la redundancia) de estos ficheros y/o carpetas.
ifFTP.Site('CHMOD 770 fichero');

Todos los archivos y/o carpetas los he movido a una carpeta que he creado desde el programa, por lo que he intentado cambiar los permisos recursivamente de esta carpeta, desde el programa y tampoco funciona.

Gracias

Casimiro Notevi 01-05-2016 14:52:41

Eso debes configurarlo en el servidor FTP.
Ten en cuenta que es algo muy peligroso, alguien sube un ejecutable, le cambia los permisos y... ¡¡¡tiene permisos para hacer lo que le da la gana en el servidor!!!

mblascog 01-05-2016 15:32:17

Gracias Casemiro. Tu que harías. Necesito dejar a los otros sin ningún privilegio.
Hay alguna posibilidad de ejecutar el comando sudo chmod ... desde Delphi?

Casimiro Notevi 01-05-2016 15:37:14

Cita:

Empezado por mblascog (Mensaje 504831)
Gracias Casemiro. Tu que harías. Necesito dejar a los otros sin ningún privilegio.
Hay alguna posibilidad de ejecutar el comando sudo chmod ... desde Delphi?

Te he respondido antes:
Cita:

Empezado por Casimiro Notevi (Mensaje 504830)
Eso debes configurarlo en el servidor FTP.

Todos los programas ftp tienen la opción de indicar los permisos que tendrán los usuarios que accedan al mismo.
Seguramente podrás ejecutar chmod, pero para quitar permisos, no para dar más.

mblascog 01-05-2016 18:35:05

Gracias Casimiro,
Cuando creo una carpeta con idFTP.makedir, puedo asignar los permisos que quiero.
Cuando quiero cambiar los permisos de un fichero cuyo propietario es diferente del grupo, es cuando me da error. Y sí, quiero usar el chmod para quitar permisos

Casimiro Notevi 01-05-2016 22:41:54

Cita:

Empezado por mblascog (Mensaje 504836)
Cuando quiero cambiar los permisos de un fichero cuyo propietario es diferente del grupo, es cuando me da error.

¿Tienes permisos para hacerlo?

mblascog 01-05-2016 23:16:32

Sí, desde el servidor de linux, ejecuto el mismo chmod y no tengo problema.
En un post antiguo he visto que sugerias idftp.sendcmd('chmod ....
Pero no me ha funcionado.

Gracias

Casimiro Notevi 01-05-2016 23:20:51

Cita:

Empezado por mblascog (Mensaje 504846)
Sí, desde el servidor de linux, ejecuto el mismo chmod y no tengo problema.

Obviamente, desde el sistema ejecutas sudo ... y lo estás haciendo como root, con todos los permisos.
Pero remotamente conectado al usuario del FTP, tienes los permisos que tenga ese usuario.

Cita:

Empezado por mblascog (Mensaje 504846)
En un post antiguo he visto que sugerias idftp.sendcmd('chmod ....
Pero no me ha funcionado. Gracias

¿Y por qué no ha funcionado?

mblascog 01-05-2016 23:38:53

No Casimiro, en el servidor ejecuto chmod no sudo chmod

Casimiro Notevi 02-05-2016 00:36:31

Cita:

Empezado por Casimiro Notevi (Mensaje 504847)
Pero remotamente conectado al usuario del FTP, tienes los permisos que tenga ese usuario.

..........

mblascog 02-05-2016 11:07:59

Quería decir que desde la cónsola del servidor, ejecuto el comando chmod sin sudo delante.
La otra cosa que he pensado ha sido crear un usuario con privilegios root. Pero no debe ser posible, pues he configurado el componente idFTP con este usuario y contraseña y salta el error de Login incorrect.

Gracias

Casimiro Notevi 02-05-2016 12:51:28

Cita:

Empezado por mblascog (Mensaje 504859)
La otra cosa que he pensado ha sido crear un usuario con privilegios root.

je, je, je... sí, haz eso, tú veras lo que va a durar el servidor con sus datos :D

mblascog 02-05-2016 13:12:24

Hola Casimiro, me has asustado y ya he eliminado el usuario.
Así pues no tengo manera de cambiar permisos de ficheros y/o carpetas remotamente?

mblascog 02-05-2016 13:51:27

Voy a hacer otra prueba: he creado un script que hace el cambio de privilegios y funciona, desde la cónsola. Ahora intentaré si sé ejecutar este script desde Delphi, con idftp.sendcmd

Casimiro Notevi 02-05-2016 14:49:51

Como he comentado antes varias veces, el propio programa servidor ftp tiene una opción para decirle qué permisos quieres que tengan los archivos que subas.


La franja horaria es GMT +2. Ahora son las 02:07:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi