Comandos Ftp

28
COMANDOS FTP (File Transfer Protocol) segun RFC 959 Fuente: RFC 959 original :: castellano ORDENES DE CONTROL DE ACCESO USER (nombre de usuario) El argumento es una cadena de caracteres que identifica al usuario. Esta identificación es la que requiere el servidor para acceder a su sistema de ficheros. Normalmente esta será la primera orden a transmitir una vez establecida la conexión. El servidor puede requerir información adicional como una contraseña o cuenta. Los servidores pueden permitir una nueva orden USER durante la conexión para cambiar el control de acceso o la información de la cuenta. Esto permite continuar una misma sesion con otra identidad. PASS (contraseña) El argumento es una cadena de caracteres contraseña del usuario. Esta orden debe seguir inmediatamente a la orden USER y, completa la identificación del usuario para el control de acceso ACCT (account, cuenta) El argumento es una cadena Telnet identificando la cuenta del usuario. Esta orden no está necesariamente relacionada con la orden USER, ya que algunos ordenadores pueden requerir una cuenta para acceder y otros sólo para cierto tipo de acceso, como almacenar ficheros. En este último caso, la orden se puede enviar en cualquier momento. Hay códigos de respuesta para diferenciar automáticamente estos casos: cuando se requiere información de la cuenta, la respuesta a una orden PASS correcta es el código 332. Por Otra parte, si NO se requiere esta información, la respuesta a una orden PASS correcta es 230 CWD (Cambio de directorio de trabajo) Esta orden permite al usuario trabajar en un directorio o conjunto de datos diferente CDUP (Cambio al directorio padre) Version simplificada de CWD, para subir de directorio. SMNT (Montar directorio) permite al usuario montar un sistema de ficheros diferente sin alterar la información de entrada o de cuenta. Los parámetros de transferencia permanecen sin cambios. El argumento es un nombre de ruta especificando un directorio o alguna otra agrupación de ficheros dependiente del sistema REIN (Reinicializar) Termina una sesion de USER, descargando todos los datos del entrada/salida y la información de cuenta, excepto que si hay alguna transferencia en proceso permite que termine. Todos los parámetros se inician con sus valores por defecto y la conexión de

Transcript of Comandos Ftp

Page 1: Comandos Ftp

COMANDOS FTP (File Transfer Protocol) segun RFC 959

Fuente: RFC 959 original :: castellano

ORDENES DE CONTROL DE ACCESO

USER (nombre de usuario) El argumento es una cadena de caracteres que identifica al usuario. Esta identificación es la que requiere el servidor para acceder a su sistema de ficheros. Normalmente esta será la primera orden a transmitir una vez establecida la conexión. El servidor puede requerir información adicional como una contraseña o cuenta. Los servidores pueden permitir una nueva orden USER durante la conexión para cambiar el control de acceso o la información de la cuenta. Esto permite continuar una misma sesion con otra identidad.

PASS (contraseña) El argumento es una cadena de caracteres contraseña del usuario. Esta orden debe seguir inmediatamente a la orden USER y, completa la identificación del usuario para el control de acceso

ACCT (account, cuenta) El argumento es una cadena Telnet identificando la cuenta del usuario. Esta orden no está necesariamente relacionada con la orden USER, ya que algunos ordenadores pueden requerir una cuenta para acceder y otros sólo para cierto tipo de acceso, como almacenar ficheros. En este último caso, la orden se puede enviar en cualquier momento. Hay códigos de respuesta para diferenciar automáticamente estos casos: cuando se requiere información de la cuenta, la respuesta a una orden PASS correcta es el código 332. Por Otra parte, si NO se requiere esta información, la respuesta a una orden PASS correcta es 230

CWD (Cambio de directorio de trabajo) Esta orden permite al usuario trabajar en un directorio o conjunto de datos diferente

CDUP (Cambio al directorio padre) Version simplificada de CWD, para subir de directorio.

SMNT (Montar directorio) permite al usuario montar un sistema de ficheros diferente sin alterar la información de entrada o de cuenta. Los parámetros de transferencia permanecen sin cambios. El argumento es un nombre de ruta especificando un directorio o alguna otra agrupación de ficheros dependiente del sistema

REIN (Reinicializar) Termina una sesion de USER, descargando todos los datos del entrada/salida y la información de cuenta, excepto que si hay alguna transferencia en proceso permite que termine. Todos los parámetros se inician con sus valores por defecto y la conexión de control se deja abierta. El estado alcanzado es idéntico al que se tiene inmediatamente después de abrir la conexión de control.

QUIT (Salir) Termina una sesión de USER y si no hay en proceso ninguna transferencia, cierra la conexión de control. Si hay una transferencia de fichero en proceso, la conexión permanecerá abierta hasta que el servidor envíe una respuesta con el resultado de la transferencia y luego se cierra.

PARAMETROS DE TRANSFERENCIA (no usuales)

PORT (Puerto de datos)

Page 2: Comandos Ftp

especificación del ordenador-puerto, para el puerto que será usado en la conexión de datos. Hay valores por defecto, y bajo circunstancias normales, esta orden y su respuesta no son necesarias. Si se usa esta orden, el argumento es la union de una dirección IP (32 bits) y un puerto TCP (16 bits).

PASV (Pasivo) Solicita al servidor que escuche en un puerto de datos distinto del puerto por defecto, y espere a recibir una conexión en lugar de iniciar una al recibir una orden de transferencia. La respuesta a este comando incluye la dirección IP y el puerto donde este servidor está esperando a recibir la conexión.

TYPE (tipo de representación) Especifica un tipo de representación: A - ASCII E - EBCDIC I - Imagen L -tamaño de byte-

STRU (Estructura de fichero) Un único carácter Telnet especificando una estructura de fichero de las descritas en la sección Representación de Datos y Almacenamiento: F - Fichero (sin estructurar en registros) R - Estructurado en registros P - Estruturado en páginas. La estructura por defecto es Fichero.

MODE (Modo de transferencia) un único carácter Telnet especificando un modo de transferencia: S - Flujo B - Bloque C - Comprimido

COMANDOS DE SERVICIO

RETR (Recuperar) Hace que el server-DTP transfiera una copia del fichero especificado en el nombre de ruta

STOR (Almacenar) Hace que el servidor lea los datos transferidos por la conexión de datos y los guarde en un fichero en el servidor. Si el fichero especificado en el nombre de ruta existe en el servidor, su contenido se debe reemplazar con los datos recibidos. Se crea un fichero nuevo en el servidor si el indicado no existía ya.

STOU (Almacenamiento Unico Igual que STOR sólo que el fichero resultante se crea en el directorio actual con un nombre único para ese directorio

APPE (Añadir) Si el fichero especificado en el nombre de ruta existe, los datos se añaden a ese fichero; si no, se crea un fichero nuevo en el servidor

ALLO (Solicitar espacio) Reserva suficiente espacio de almacenamiento en el servidor para recibir el nuevo fichero. A continueción de esta orden se deberá indicar una orden STOR o APPE

REST (Recomenzar) El argumento representa un marcador del servidor a partir del cual debe recomenzar la transferencia. La orden no realiza la transferencia del fichero, pero hace que el puntero de lectura o escritura del fichero se sitúe a continuación del punto indicado. A continuación de esta orden se debe enviar la orden de servicio FTP apropiada que hará que continúe la transferencia del fichero

RNFR (Renombrar de) indica el fichero que queremos cambiar de nombre en el servidor

RNTO (Renombrar a) especifica el nuevo nombre para el fichero indicado mediante el comando RNFR. Las dos órdenes seguidas hacen que el fichero cambie de nombre

ABOR (abortar)

Page 3: Comandos Ftp

pide al servidor que interrumpa la orden de servicio FTP previa y cualquier transferencia de datos asociada. Hay dos posibles casos para el servidor al recibir esta orden: (1) la orden de servicio FTP está ya terminada, o (2) aún está en ejecución. En el primer caso, el servidor cierra la conexión de datos (si está abierta) y devuelve una respuesta 226 indicando que la orden de interrumpir se ha procesado correctamente. En el segundo caso, el servidor interrumpe el servicio FTP en proceso y cierra la conexión de datos, devolviendo una respuesta 426 para indicar que la solicitud de servicio terminó anormalmente. Luego, el servidor envía una respuesta 226 para indicar que la orden de interrumpir se ha procesado correctamente.

DELE (Borrar) borra en el servidor el fichero indicado en el nombre de ruta

RMD (Borrar directorio) borra en el servidor el directorio indicado

MKD Borra el directorio del servidor especificado

PWD Muestra el directorio de trabajo del servidor

LIST envia una listado de los ficheros a través del proceso de transferencia de datos pasivo. Si el nombre de ruta u otra agrupación de ficheros, el servidor debe transferir una lista de los ficheros en el directorio indicado. Si el nombre de ruta especifica un fichero, el servidor debería enviar información sobre el fichero. Si no se indica argumento alguno, implica que se quiere listar el directorio de trabajo actual o directorio por defecto

NLST (Listar nombres) Envia listado de directorio desde el servidor. El nombre de ruta indica un directorio u otra agrupación de ficheros específica del sistema; si no hay argumento, se asume el directorio actual

SITE (Parametros del sistema) Proporciona servicios específicos propios del sistema del servidor que son fundamentales para transferir ficheros pero no lo suficientemente universales como para ser incluídos como órdenes en el protocolo

SYST devuelve el tipo de sistema operativo del servidor

STAT el servidor devolverá información general del estado del proceso servidor FTP

HELP el servidor envia información sobre la implementación del FTP

NOOP (No operacion) No hace nada más que provocar que el servidor envíe una respuesta OK

Introducción al ftp

El protocolo ftp es el que utilizamos para descargar archivos de la red, o subirlos desde nuestro ordenador.

Hoy en dia todos hemos descargado algun archivo usando las utilidades incorporadas al propio navegador. Basta sustituir la url http:// ... por el protocolo correcto: ftp:// .... Puedes incluso acceder a sitios de ftp no anónimo escribiendo en tu navegador ftp://nombreusuario:contraseña@direccionftp.

En este manual, sin embargo, vamos a echar un vistazo a la forma de trabajar con ftp en modo consola, con comandos de texto.

Page 4: Comandos Ftp

¿que para qué? pues para saber como funciona, claro. Y porque necesitaremos probablemente este conocimiento si algun dia necesitamos 'ftpear' en serio.

¿que necesito?

Para esta primera toma de contacto con el ftp, usaremos lo que la mayoria tenemos a mano: el programa ftp que viene incluido en las distribuciones de windows. Ya sabes. Inicias una sesión DOS (inicio, programas, MS-DOS) y a teclear ...

primeros pasos

Para iniciar una sesión ftp necesitamos establecer una conexión con el ordenador servidor, que es el que maneja el espacio donde estan los archivos que queremos bajar (o a donde queremos subir los nuestros). Esta conexión tendrá lugar a través del puerto 21 de nuestro ordenador. Tenemos dos formas de iniciar la conexión:

    a) escribimos en nuestra ventana de DOS ftp nombredelservidor, por ejemplo, por que no, ftp ftp.microsoft.com. Observa que no es que escribamos ftp dos veces, sino que los servidores dedicados a transmisión de ficheros se suelen identificar con ftp.nombreservidor.extensión, al igual que por ejemplo los que albergan paginas webs se identifican como www.loquesea.com.

    b) Entramos primero en el programa ftp escribiendo ftp y pulsando ENTER. El prompt del sistema cambia a ftp >. A continuación escribimos: open ftp.microsoft.com.

En cualquiera de los dos casos Sabremos que hemos conectado porque vemos un mensaje de bienvenida. En el ejemplo anterior:

C:WINDOWS>ftp ftp.microsoft.comConectado a ftp.microsoft.com.220 cpmsftftpa03 Microsoft FTP Service (Version 5.0).Usuario (ftp.microsoft.com:(none)): anonymous331 Anonymous access allowed, send identity (e-mail name) as password.Contraseña:******230-This is FTP.MICROSOFT.COM. Please see the230-dirmap.txt for more information.230 Anonymous user logged in.ftp> _Vamos a ver que es todo esto. Lo que esta escrito en negrita corresponde a lo que hemos escrito nosotros. El resto es la respuesta del servidor:

Iniciamos la conexión escribiendo ftp ftp.microsoft.com. El servidor nos informa que estamos conectados, y su nombre y versión. A continuación nos da el nombre de usuario. Como aun no estamos identificados aparecemos como 'none'.

Tenemos que identificarnos para entrar, pero ¿como lo hacemos?. Afortunadamente aun perviven las buenas viejas costumbres, y internet esta lleno de servidores 'publicos' que permiten la conexión de usuarios anonimos. Típicamente usaremos el nombre de usuario anonymous y como contraseña es cortesía introducir nuestro email (en este caso solo el identificativo, es decir lo que va antes de la @). Y no, no es necesario usar tu email real. Pero no olvides que te conectas con tu IP, que se trata de

Page 5: Comandos Ftp

un servicio gratuito que hay que defender, y por tanto, procura no abusar.

Bien, ya hemos entrado. En este caso el servidor nos informa donde podemos encontrar un archivo con instrucciones (los tipicos leeme o README), y de nuestro nombre de usuario (anonymous)

¿que comandos podemos usar?

Para saber que comandos tenemos a nuestra disposición, simplemente escribimos help o abreviado, la interrogación ?.Esta es la respuesta a nuestra petición de ayuda:

ftp> ?Los comandos se pueden abreviar. Comandos:

! delete literal prompt send? debug ls put statusappend dir mdelete pwd traceascii disconnect mdir quit typebell get mget quote userbinary glob mkdir recv verbosebye hash mls remotehelpcd help mput renameclose lcd open rmdirftp>_

Ten en cuenta que estos son los comandos que en principio nos ofrece nuestro programa. Dependiendo de los privilegios con los que hayamos entrado, podremos hacer mas o menos cosas, es decir, tendremos mas o menos comandos a nuestra disposición, pues es logico, no podemos hacer lo mismo en un servidor público que, por ejemplo, en un servidor ftp de nuestra web. Y lo normal es que el servidor disponga de otros comandos adicionales

listando directorios

El comando ls (LS) nos sirve para obtener un listado de los archivos del servidor, en formato legible, con una serie de información accesoria.

La información que el servidor debe devolver al recibir un comando ls no está descrita en el estandard RFC-959, por lo que pueden existir problemas en algunos casos puntuales. Lo normal es que un servidor windows muestre una salida semejante a la del comando dir, y un servidor unix, semejante al comando unix /bin/ls -l.

Sintaxis:

ls [Directorio_remoto] [Archivo_local]

Donde directorio remoto es aquel del que deseamos obtener el listado de archivos. Si no se especifica, se usa el directorio actual. Archivo_local especifica un archivo donde debe guardarse el resultado de la consulta. Si no se indica archivo local, se muestra en pantalla.

Opciones principales

Page 6: Comandos Ftp

Listado extenso

Para obtener mas información usa el comando ls con el parámetro -l [directorio]

ls -l

Una salida típica te mostrará los permisos de acceso al fichero, número de links hacia el mismo, usuario propietario, tamaño, ultima modificación y nombre

Archivos ocultos

Para mostrar tambien archivos ocultos (cuyo nombre empieza típicamente con un punto) usa el parámetro -a

Mas opciones (flags)

Parámetro Acción -a lista también archivos ocultos -A lista archivos ocultos (excluyendo . y .. implicitos) -d lista el nombre del actual directorio -F muestra directorios con una '/' final ejecutables con un '*' -g muestra el propietario -i muestra el numero inode de cada archivo -l listado con detalles -R lista subdirectorios y su contenido -t muestra ordenado por fecha de modificación en lugar de por nombre -r orden inverso -C ordena por columnas (solo nombre)

Comandos básicos

En la página anterior vimos los comandos para conectar con un servidor ftp (c:/ftp ftp.nombredeservidor.* o bien desde dentro del programa, ftp> open ftp.elservidor.*), y la necesidad de introducir nombre de usuario y contraseña; también vimos como ver los comandos de ayuda disponibles en nuestro sistema (? o bien help, pudiendo pedir ayuda sobre comandos específicos: ? comando, o help comando)

Bien, ya estamos conectados, vamos a movernos por el servidor. En este caso, ponemos como ejemplo el servidor ftp de un hosting de páginas web:

C:>ftp ftp.nexen.netConectado a sauterne.nexen.net.220 ProFTPD 1.2.0pre10 Server (Sauterne) [sauterne.nexen.net]Usuario (sauterne.nexen.net:(none)): minombre331 Password required for minombre.Contraseña:************230 User minombre logged in.ftp>

Lo primero que hacemos es ver donde estamos. Para eso usamos el comando pwd:

Page 7: Comandos Ftp

ftp> pwd257 '/' is current directory.ftp>

vemos que estamos en el directorio raiz (no es el verdadero directorio raiz de la máquina remota, pero si desde nuestro punto de vista de usuarios)

A continuación, lo lógico es que queramos ver que tenemos a nuestro alrededor. Para obtener la lista de archivos y directorios, usamos el comando ls:

utilidadesvariosxhtmlblank.htmlcanciones.jsentrada.htmlentradanoframes.htmestilo.cssestilo2.cssfavicon.iconu43innetphpinfo.phponline.htmpreload.htmlscriptind.jscalphorum-3.2.1xmlextensions.php404.html226-Transfer complete.226 Quotas offftp: 361 bytes received in 0.06Segundos 6.02KB/s.ftp>

¿que ha pasado? hay tantos directorios y archivos que ocupan toda la pantalla. Ya sabemos que aqui no hay scroll. Para ver todos los archivos y directorios cómodamente, usamos la misma orden, con un modificador:

ls -C: ftp> ls -C200 PORT command successful.150 Opening ASCII mode data connection for file list.404.html favicon.ico preload.htmlblank.html html scriptind.jscal images servidorcal.htm index.php smilcanciones innet trucoscanciones.js manualcss tutorialesdump-mysql musica utilidadesentrada.html mysql variosentradanoframes.htm nu43 xhtmlestilo.css online.htm xmlestilo2.css phorum-3.2.1extensions.php phpinfo.php226-Transfer complete.226 Quotas off

Page 8: Comandos Ftp

ftp: 368 bytes received in 0.06Segundos 6.13KB/s.ftp>

He ahi la lista completa de directorios y archivos. Estamos en disposición de bajar y subir archivos. Pero antes de bajar nada, debemos tener en cuenta que no hemos especificado en que directorio de nuestro disco duro deben almacenarse las descargas. Por defecto, se almacenan en el directorio desde el que estemos trabajando (por ejemplo, si hemos lanzado el ftp desde una sesión típica de DOS, estaremos en c:/windows, y no nos interesa que las descargas se almacenen ahi). Necesitamos cambiar el directorio de trabajo local, con el comando lcd:

ftp> lcd ..Directorio local ahora C:.ftp> lcd tempDirectorio local ahora C:temp.ftp>

Vemos como con lcd.. (local change directory) subimos en el arbol de directorios de nuestra máquina (de c:/windows a c:) y luego con lcd temp pasamos al directorio c:temp.Bueno, bajamos nuestro primer archivo con la orden get:

ftp> get favicon.ico200 PORT command successful.150 Opening ASCII mode data connection for favicon.ico (942 bytes).226 Transfer complete.ftp: 942 bytes received in 0.06Segundos 15.70KB/s.ftp>

Acabamos de descargar de nuestro servidor el archivo favicon.ico. El programa nos informa de la velocidad de descarga, tamaño del archivo y tiempo transcurrido (he escogido un archivo enano). Tambien nos dice el modo en el que hemos realizado la transferencia: ASCII. Hay dos modos de transferencia. De momento basta saber que ASCII es apropiado para textos, datos, mientras que BINARY es el adecuado para programas e imágenes. Para pasar de un modo a otro sencillamente tecleamos ascii, o asc (pasamos a modo ascii) o binary, o bin, pasamos a modo binario. Por ejemplo:

ftp> binary200 Type set to I.ftp> asc200 Type set to A.ftp> bin200 Type set to I.

Donde vemos que pasamos a modo binario (modo I) luego a ASCII (modo A) y nuevamente a binario.

ftp> put README-faq200 PORT command successful.150 Opening ASCII mode data connection for README-faq.226 Transfer complete.ftp: 2339 bytes sent in 0.05Segundos 46.78KB/s.ftp>

Page 9: Comandos Ftp

Ahora hemos subido al servidor (comando put) el archivo README-faq. comprobamos que está:

ftp> ls -C200 PORT command successful.150 Opening ASCII mode data connection for file list.404.html extensions.php phpinfo.phpREADME-faq favicon.ico preload.htmlblank.html html scriptind.js...

Y ahi lo tenemos. Recordamos que comandos hemos visto:

pwd para saber enque parte del servidor estamos ls para listar directorios y archivos del servidor. ls -C nos presenta la información en

una sola pantalla. ls -la ofrece los atributos de los archivos lcd para movernos entre directorios locales. cd (change directory) para movernos por el

servidor get para desgargar un archivo put para subir un archivo

Y terminamos estos primeros movimientos borrando un archivo: ftp> delete README-faq250 DELE command successful.

Como verás, el programa presume que sabemos lo que estamos haciendo, y no nos pregunta confirmación. Asi que mas vale andar con cuidado !

CHMOD files, asignando permisos

Una de las dudas mas habituales cuando nos enfrentamos a la instalación de scripts (perl, php) es la asignación de los permisos correspondientes. Las preguntas sobre CHMOD suelen ser las mas habituales en todos los foros que se dedican a estos temas. En este artículo abordaremos que son los permisos, para que sirven, y como asignarlos.

Los script y los permisos

CHMOD ("Change mode") es un comando UNIX que permite cambiar los permisos de acceso de un archivo. Cada archivo tiene nueve clases de acceso, que pueden ser permitidas o denegadas. Se pueden aplicar diferentes permisos al dueño del fichero, al grupo al que el fichero pertenece y al resto de usuarios. Cada una de estas tres clases de usuarios (dueño, grupo, resto de usuarios) puede tener permisos de lectura, escritura y ejecución

Al instalar cualquier archivo en una página web, podemos definir sus propiedades, para determinar en que forma será accesible para los visitantes de la página. Estas propiedades son lo que llamamos permisos y segun cuales asignemos a cada archivo este será solo de lectura, de escritura o ejecutable, o cualquier combinación de los tres.

Piensa por ejemplo en una página de html sencilla, respecto de la cual solo nos

Page 10: Comandos Ftp

interesa garantizar que todo el mundo pueda verla pero no modificarla; el archivo que contiene esa página necesita unicamente permisos de lectura, pero no de ejecución ni de escritura. Por contra, si se trata de un script, necesitará probablemente permisos de lectura y de ejecución, etc.

La orden CHMOD

En este documento nos referimos a la asignación de permisos en servidores unix (unix, linux, freebsd, todos ellos pertenecientes a la familia unix, y con diferencia los mas difundidos en la red). La asignación de permisos se hace mediante el comando CHMOD. Por eso, cuando al leer las instrucciones de instalación de cualquier aplicación web te encuentres con la misteriosa frase "haz chmod 666 tal_archivo.htm" ten en consideración que nos estan diciendo los permisos que ese archivo necesita.

Los servidores Windows tienen su propio sistema de permisos, en los que no vamos a entrar aqui.

El concepto de usuario en UNIX

El sistema operativo UNIX esta diseñado para ser multiusuario. Por ello UNIX permite tres niveles de acceso a los archivos, para tres categorias diferentes de usuarios:

owner (propietario) La persona que el sistema reconoce como dueño del archivo.

Group (grupo): Conjunto de usuarios con permisos similares. Muy usado en entornos de trabajo, es de escasa aplicación en páginas web.

Other (otros): Cualquier otra persona.

Es un error asociar el concepto de usuario a una persona real. Se trata de una abstracción, que se refiere no a personas sino a categorias. Por ejemplo, si nosotros creamos un script, somos efectivamente sus autores y propietarios; pero ese script esta destinado a la red. Nosotros, y el resto de personas, accederan al archivo no a traves de nuestra maquina local sino por internet. Es frecuente en los servidores la creación de usuarios genéricos (root, www, www-user etc). En definitiva no olvides que cuando asignas permisos a un script, el owner puede ser cualquiera que visite la página, lo cual será necesario si como es normal se trata de scripts que se administran via web.

Tipos de permiso de acceso:

Read (lectura): Permiso para ver el archivo o directorio, sin hacer cambios.

Write (escritura): Permiso de escritura: puede escribir el archivo, y por tanto, cambiarlo.

Execute (ejecución): El archivo o directorio puede ser ejecutado. Se usa para directorios con scripts, formularios, etc ...

Y tratándose de directorios:

read listar los archivos de un directorio

Page 11: Comandos Ftp

write añadir nuevos archivos al directorio

execute acceder a los archivos del directorio

Como conozco los permisos de un archivo ?

Si tenemos acceso ftp al servidor, tecleamos el comando ls -l y vemos algo asi:

-rw-r--r-- 1 irvnet irvnet 1272 Sep 28 07:31 index.php| // / | | | || | | | | | tamaño nombre del archivo| | | | | |_ nombre grupo| | | | || | | | |_ nombre usuario| | | || | | |_ Permisos genericos| | || | |_ Los siguientes tres digitos los permisos del Group| || |___ los siguientes tres caracteres determinan los permisos del owner:| r de real, lectura; w, write, escritura y x de| execute, ejecución|||___ El primer carácter indica si nos encontramos ante un directorio o un fichero: d significa directorio, - significa fichero, l significa link

Advierte que tenemos TRES categorias de usuarios ("user," "group," y "other") y para categoria pueden asignarse TRES tipos de permisos: "r," "w," y "x".

Fijando permisos

La orden chmod puede usarse con letras o numeros. La forma mas corriente es expresar los permisos numericamente. Seguro que lo has visto por ahi, chmod 777 etc ... Para comprender el significado tienes que tener en cuenta que convencionalmente 4 significa permiso de lectura. 2 permiso de escritura y 1 permiso de ejecución. Sumando estos valores vemos que un archivo puede tener los siguientes permisos (por cada tipo de usuario):

4= lectura2= escritura1= ejecución

6 (4+2)= lectura y escritura5 (4+1)= lectura y ejecución3 (2+1)= escritura y ejecución7 (4+2+1)= lectura, escritura y ejecución

Todo ello para los tres tipos de usuario.

Asi, un chmod file 777 significa que owner, group y others tienen permiso de lectura, escritura y ejecución. chmod 766 significa que el owner tiene permiso de lectura,

Page 12: Comandos Ftp

escritura y ejecución, y el group y others permiso de lectura y escritura. Chmod 744 significa que el owner tiene permisos de lectura, escritura y ejecución, y group y others unicamente permisos de lectura.

Como ves, son tres digitos, de izquierda a derecha designan los permisos del owner, group y others.

Vemos a continuación su equivalente en letras:

0 = --- = sin acceso1 = --x = ejecución2 = -w- = escritura3 = -wx = escritura y ejecución4 = r-- = lectura5 = r-x = lectura y ejecución6 = rw- = lectura y escritura7 = rwx = lectura, escritura y ejecución

Asi, en el ejemplo de antes:

rw-r--r--

significa que el owner tiene permisos de lectura y escritura (rw-); el group permisos de lectura unicamente (r--) y other, permiso de lectura (r--). ¿como seria el equivamente numerico? sería chmod 644.

La sintaxis para usar chmod con texto:

chmod [ugo][+-][rwx] [nombre_archivo]

Donde [u=user, g=group y o=other]; [+/- activa o desactiva los atributos siguientes] [r=read, w=write, x=execute]

Por ejemplo, chmod go+r index.php significa que asignamos permisos de lectura para group y others en index.php

De esta forma solo cambiamos los atributos que especificamos, pero no alteramos otros compatibles que pudieran estar asignados anteriormente) por ejemplo, no modifica la atribucion anterior a group de un permiso de ejecución).

Si queremos fijar de nuevo todos los permisos, la sintaxis sería:

chmod go=r index.php donde asignamos a group y other permiso de lectura sobre index.php y eliminamos cualquier otro permiso para ambos.

Ten encuenta asimismo que puedes usar comodines:

chmod 644 *.html etc ...

Calculando valores chmod

Chmod

Page 13: Comandos Ftp

Permission Owner Group Other

Read

Write

Execute

This free script provided by JavaScript Kit

caso práctico, phpnuke:

Este apartado se mantiene como simple ejemplo. Las ultimas versiones de php-nuke NO precisan permisos de archivo especiales.

Si leemos el install de phpnuke (versiones antiguas anteriores a la 6.0), por ejemplo, el de la versión 4.4, encontramos:

"... In order to use the File Manager, please be sure to chmod 666 ALL files and 777 ALL directories.4) Also, to activate Headlines you "need" to chmod 777 the "cache" directory, otherwise headlines won't work.....NOTE: If you want to edit config.php file from web browser remember to chmod 666 the file config.php or your changes will not be saved! If can't execute chmod just edit the file by hand and re-upload it to your server".

Bueno, aqui nos están diciendo que si queremos utilizar el "administrador de archivos" hay que asignar permisos 666 a todos los archivos, es decir, ya sabemos, permisos de lectura y escritura para TODOS los usuarios (owner, group, other) y 777 a todos los directorios (permiso para listar archivos, subir archivos, acceder archivos en el directorio, a los tres grupos de usuarios).

Para activar las headlines chmod 777 el directorio cache: listar archivos, subir archivos, acceder archivos en el directorio, a los tres grupos de usuarios.

Para modificar las preferencias de nuestra página via web (a traves de admin.php) debemos asignar a config.php permiso 666, es decir, permisos de lectura y escritura. De otra forma, si no tiene permisos de escritura, no se guardaran los cambios.

Materialmente, como se hace?

WS_FTP: click derecho sobre el archivo o directorio, y elegir "chmod" en el menu emergente. O tambien, click derecho y elegir del menu "SITE", y en la barra que sale escribir el comando UNIX, por ejemplo, "chmod 666 config.php".

CuteFTP: click derecho sobre el archivo o carpeta y elegir "Change file attributes" del menu emergente. Para ver los permisos en la ventana, click derecho sobre la ventana y elegir "Long listing".

Telnet: Conectados al servidor, simplemente tecleamos chmod 666 config.php

Page 14: Comandos Ftp

HTML-kit Selecciona el archivo en el worksplace; click en el botón secundario del ratón y selecciona Set permissions. Obtendras una ventana donde podrás fijar el valor CHMOD chequeando casillas con los permisos, o bien introduciendo directamente su traducción numérica

COMANDOS FTP (File Transfer Protocol) segun RFC 959

Fuente: RFC 959 original :: castellano

ORDENES DE CONTROL DE ACCESO

USER (nombre de usuario) El argumento es una cadena de caracteres que identifica al usuario. Esta identificación es la que requiere el servidor para acceder a su sistema de ficheros. Normalmente esta será la primera orden a transmitir una vez establecida la conexión. El servidor puede requerir información adicional como una contraseña o cuenta. Los servidores pueden permitir una nueva orden USER durante la conexión para cambiar el control de acceso o la información de la cuenta. Esto permite continuar una misma sesion con otra identidad.

PASS (contraseña) El argumento es una cadena de caracteres contraseña del usuario. Esta orden debe seguir inmediatamente a la orden USER y, completa la identificación del usuario para el control de acceso

ACCT (account, cuenta) El argumento es una cadena Telnet identificando la cuenta del usuario. Esta orden no está necesariamente relacionada con la orden USER, ya que algunos ordenadores pueden requerir una cuenta para acceder y otros sólo para cierto tipo de acceso, como almacenar ficheros. En este último caso, la orden se puede enviar en cualquier momento. Hay códigos de respuesta para diferenciar automáticamente estos casos: cuando se requiere información de la cuenta, la respuesta a una orden PASS correcta es el código 332. Por Otra parte, si NO se requiere esta información, la respuesta a una orden PASS correcta es 230

CWD (Cambio de directorio de trabajo) Esta orden permite al usuario trabajar en un directorio o conjunto de datos diferente

CDUP (Cambio al directorio padre) Version simplificada de CWD, para subir de directorio.

SMNT (Montar directorio) permite al usuario montar un sistema de ficheros diferente sin alterar la información de entrada o de cuenta. Los parámetros de transferencia permanecen sin cambios. El argumento es un nombre de ruta especificando un directorio o alguna otra agrupación de ficheros dependiente del sistema

REIN (Reinicializar) Termina una sesion de USER, descargando todos los datos del entrada/salida y la información de cuenta, excepto que si hay alguna transferencia en proceso permite que termine. Todos los parámetros se inician con sus valores por defecto y la conexión de control se deja abierta. El estado alcanzado es idéntico al que se tiene inmediatamente después de abrir la conexión de control.

QUIT (Salir)

Page 15: Comandos Ftp

Termina una sesión de USER y si no hay en proceso ninguna transferencia, cierra la conexión de control. Si hay una transferencia de fichero en proceso, la conexión permanecerá abierta hasta que el servidor envíe una respuesta con el resultado de la transferencia y luego se cierra.

PARAMETROS DE TRANSFERENCIA (no usuales)

PORT (Puerto de datos) especificación del ordenador-puerto, para el puerto que será usado en la conexión de datos. Hay valores por defecto, y bajo circunstancias normales, esta orden y su respuesta no son necesarias. Si se usa esta orden, el argumento es la union de una dirección IP (32 bits) y un puerto TCP (16 bits).

PASV (Pasivo) Solicita al servidor que escuche en un puerto de datos distinto del puerto por defecto, y espere a recibir una conexión en lugar de iniciar una al recibir una orden de transferencia. La respuesta a este comando incluye la dirección IP y el puerto donde este servidor está esperando a recibir la conexión.

TYPE (tipo de representación) Especifica un tipo de representación: A - ASCII E - EBCDIC I - Imagen L -tamaño de byte-

STRU (Estructura de fichero) Un único carácter Telnet especificando una estructura de fichero de las descritas en la sección Representación de Datos y Almacenamiento: F - Fichero (sin estructurar en registros) R - Estructurado en registros P - Estruturado en páginas. La estructura por defecto es Fichero.

MODE (Modo de transferencia) un único carácter Telnet especificando un modo de transferencia: S - Flujo B - Bloque C - Comprimido

COMANDOS DE SERVICIO

RETR (Recuperar) Hace que el server-DTP transfiera una copia del fichero especificado en el nombre de ruta

STOR (Almacenar) Hace que el servidor lea los datos transferidos por la conexión de datos y los guarde en un fichero en el servidor. Si el fichero especificado en el nombre de ruta existe en el servidor, su contenido se debe reemplazar con los datos recibidos. Se crea un fichero nuevo en el servidor si el indicado no existía ya.

STOU (Almacenamiento Unico Igual que STOR sólo que el fichero resultante se crea en el directorio actual con un nombre único para ese directorio

APPE (Añadir) Si el fichero especificado en el nombre de ruta existe, los datos se añaden a ese fichero; si no, se crea un fichero nuevo en el servidor

ALLO (Solicitar espacio) Reserva suficiente espacio de almacenamiento en el servidor para recibir el nuevo fichero. A continueción de esta orden se deberá indicar una orden STOR o APPE

REST (Recomenzar) El argumento representa un marcador del servidor a partir del cual debe recomenzar la transferencia. La orden no realiza la transferencia del fichero, pero hace que el puntero de lectura o escritura del fichero se sitúe a continuación del punto indicado. A continuación de esta orden se debe enviar la

Page 16: Comandos Ftp

orden de servicio FTP apropiada que hará que continúe la transferencia del fichero

RNFR (Renombrar de) indica el fichero que queremos cambiar de nombre en el servidor

RNTO (Renombrar a) especifica el nuevo nombre para el fichero indicado mediante el comando RNFR. Las dos órdenes seguidas hacen que el fichero cambie de nombre

ABOR (abortar) pide al servidor que interrumpa la orden de servicio FTP previa y cualquier transferencia de datos asociada. Hay dos posibles casos para el servidor al recibir esta orden: (1) la orden de servicio FTP está ya terminada, o (2) aún está en ejecución. En el primer caso, el servidor cierra la conexión de datos (si está abierta) y devuelve una respuesta 226 indicando que la orden de interrumpir se ha procesado correctamente. En el segundo caso, el servidor interrumpe el servicio FTP en proceso y cierra la conexión de datos, devolviendo una respuesta 426 para indicar que la solicitud de servicio terminó anormalmente. Luego, el servidor envía una respuesta 226 para indicar que la orden de interrumpir se ha procesado correctamente.

DELE (Borrar) borra en el servidor el fichero indicado en el nombre de ruta

RMD (Borrar directorio) borra en el servidor el directorio indicado

MKD Borra el directorio del servidor especificado

PWD Muestra el directorio de trabajo del servidor

LIST envia una listado de los ficheros a través del proceso de transferencia de datos pasivo. Si el nombre de ruta u otra agrupación de ficheros, el servidor debe transferir una lista de los ficheros en el directorio indicado. Si el nombre de ruta especifica un fichero, el servidor debería enviar información sobre el fichero. Si no se indica argumento alguno, implica que se quiere listar el directorio de trabajo actual o directorio por defecto

NLST (Listar nombres) Envia listado de directorio desde el servidor. El nombre de ruta indica un directorio u otra agrupación de ficheros específica del sistema; si no hay argumento, se asume el directorio actual

SITE (Parametros del sistema) Proporciona servicios específicos propios del sistema del servidor que son fundamentales para transferir ficheros pero no lo suficientemente universales como para ser incluídos como órdenes en el protocolo

SYST devuelve el tipo de sistema operativo del servidor

STAT el servidor devolverá información general del estado del proceso servidor FTP

HELP el servidor envia información sobre la implementación del FTP

NOOP (No operacion) No hace nada más que provocar que el servidor envíe una respuesta OK

PASSIVE MODE

Page 17: Comandos Ftp

Uno de los términos que se suelen oir cuando se habla de problemas con el ftp es el de passive mode. Aqui vamos a ver de que se trata, y por que es la solución a muchos problemas de conectividad

Como sabemos en toda transferencia ftp interviene un programa servidor y un programa cliente. El programa servidor se ejecuta donde estan almacenados los ficheros que se quieren bajar (o donde se almacenarán los que deseamos subir) y el programa cliente es el programa ftp que usamos desde la maquina local, para subir o bajar los ficheros.

En este proceso de comunicación entre cliente y servidor, el cliente puede actuar en modo activo o en modo pasivo.

Una conexión ftp usa dos puertos, abre dos canales: Uno será el puerto de comandos, command port o control port (normalmente puerto 21) por donde se transfieren las órdenes. El otro es el puerto de datos (data port) que es por donde circulan los datos que integran los ficheros (normalmente el puerto 20, pero puede ser cualquiera por debajo del 1024)

modo activo

Cuando usamos ftp en modo activo (tambien considerado modo normal) se establecen dos conexiones distintas. El primer lugar se establece una conexión para la transmisión de comandos (desde cualquier puerto de nuestro ordenador inferior a 1024 hacia el puerto 21 del server) y por esa misma conexion, mediante un comando PORT se indica al server cual es el puerto (distinto) de nuestro ordenador que está a la escucha de los datos.

Entonces, si bajamos algun archivo, es el servidor el que inicia la transmisión de datos, desde su puerto 20 al puerto que le hemos indicado. Se llama modo activo porque la transmisión de datos es iniciada como proceso distinto desde el servidor, hacia el puerto que le hemos indicado.

modo pasivo

En modo pasivo es siempre el programa cliente el que inicia la conexion con el servidor. Al abrir una conexión ftp se abre primero una conexión de control (desde un puerto inferior a 1024 de la maquina local al puerto 21 del server). Al pasar a modo pasivo (comando PASV), el cliente pide un puerto abierto al servidor (será otro puerto inferior al 1024 del server) y recibida la contestacion, será el cliente el que establezca la conexión de datos al server a traves de ese puerto.

A modo de resumen podemos decir que en modo pasivo las conexiones son siempre abiertas por el pc cliente, mientras que en modo pasivo se abren por el que envia los datos (el server si se trata de bajar archivos al pc local, el cliente si se trata de subir archivos al server).

Y por qué supone un problema el modo activo ?

Como hemos visto, en el modo activo se abre una conexión para datos desde el server a la maquina cliente, esto es, una conexión de fuera a dentro.

Page 18: Comandos Ftp

Entonces, si la maquina cliente está protegida por un firewall, este filtra o bloquea la conexión entrante, al serle un proceso desconocido.

En modo pasivo es el cliente el que inicia ambas conexiones, de control y de datos, con lo cual el firewall no tiene ninguna conexion entrante que filtrar

Pasive mode y la linea de comandos

Lamentablemente la utilidad de ftp que viene por defecto con windows 95/98 y que puedes usar en línea de comandos, no dispone de modo pasivo.

Por ello si tienes problemas de conexion y sospechas que es por un firewall, deberás buscar un programa cliente ftp que disponga de esta posibilidad (la inmensa mayoria).

Para terminar con el modo pasivo, parte de un log de conexión:

FTP > PASVFTP < 227 Entering Passive Mode (222,222,222,22,196,39).FTP > LIST

Como ves el server reacciona al comando PASV entrando en modo pasivo e indicando una serie de numeros (entre parentesis la segunda linea). Los cuatro primeros bloques de números se corresponden con la IP del servidor. Los dos números restantes son el puerto que el server abre a la escucha para el canal de datosEl puerto esta indicado mediante dos numeros de 8 bits; traducido a número de 16 bits obtenemos el numero "real"

Las respuestas del servidor

Las respuestas de un servidor ftp vienen identificadas por un código de tres números. Este código está pensado para asegurar la sincronización entre peticiones y acciones en el proceso de transferencia de ficheros y para garantizar que el proceso de usuario siempre conoce el estado del servidor. Cada orden debe generar por lo menos una respuesta, aunque puede haber más de una.

Una respuesta FTP consiste en un número de tres cifras seguidos de texto explicativo. El número contiene suficiente información como para que el programa del usuario no necesite examinar el texto, y puede o bien descartarlo o bien mostrarlo.El texto puede depender del servidor y, por tanto, puede variar en cada código de respuesta.

Cada uno de los tres números de la respuesta tienen un significado especial. Se pretende permitir un rango de respuestas desde muy simple a muy detallado. El primer dígito denota si la respuesta es buena, mala o incompleta. Un proceso de usuario poco sofisticado podrá determinar su próxima acción simplemente examinando el primer dígito. Un proceso de usuario que quiera conocer aproximadamente el tipo de error ocurrido (por ejemplo, error del sistema de ficheros o error de sintaxis) puede examinar el segundo dígito, reservando el tercero para una mayor precisión en la información

primer dígito, cinco opciones

1** Respuesta preliminar positiva. Se ha iniciado la acción requerida; se espera otra

Page 19: Comandos Ftp

respuesta del server antes de seguir con una nueva orden.

2** Respuesta de finalización positiva. La acción requerida se ha completado satisfactoriamente. Se puede iniciar una nueva orden.

3** Respuesta intermedia positiva. La orden se ha aceptado, pero se está pendiente de recibir más información para completarla. El usuario debería enviar otra orden indicando esta información. Esta respuesta se utiliza en órdenes que deben ir en secuencia.

4** Respuesta de finalización negativa transitoria. La orden no se ha aceptado y la acción requerida no se ha llevado a cabo, pero la condición de error es temporal y se puede solicitar la acción de nuevo.

5** Respuesta de finalización negativa permanente. La orden no se ha aceptado y la acción requerida no ha tenido lugar.

Segundo dígito, seis opciones

*0* Sintaxis. Estas respuestas se refieren a errores de sintaxis, órdenes correctas sintácticamente pero que no encajan en ninguna otra categoría, órdenes no implementadas o superfluas.

*1* Información. Estas son respuestas a solicitudes de información como STATUS o HELP.

*2* Conexiones. Respuestas referidas a las conexiones de control y de datos.

*3* Autenticación y cuenta. Respuestas para el proceso de entrada al sistema y procedimientos de cuenta.

*4* Sin especificar aún.

*5* Sistema de ficheros. Estas respuestas indican el estado del sistema de ficheros en el servidor según se realizan transferencias u otras acciones sobre el sistema de ficheros.

Códigos de respuesta por número.

110 Respuesta al marcador de reinicio. En este caso, el texto debe ser: MARK yyyy = mmmm Donde yyyy es el marcador del flujo de datos en el proceso de usuario y mmmm es el equivalente en el servidor.

120 El servicio estará en funcionamiento en nnn minutos.

125 La conexión de datos ya está abierta; comenzando transferencia.

150 Conexion abierta.

200 OK (Orden correcta).

Page 20: Comandos Ftp

202 Orden no implementada, no necesaria en este sistema.

211 Estado del sistema o respuesta de ayuda del sistema.

212 Estado del directorio.

213 Estado del fichero.

214 Mensaje de ayuda. Sobre como usar el servidor o el significado de una orden particular no estándar.

215 identificación del tipo de sistema.

220 Servicio preparado para nuevo usuario.

221 Cerrando la conexión de control. Desconectado si procede.

225 Conexión de datos abierta; no hay transferencia en proceso.

226 Cerrando la conexión de datos. La acción sobre fichero requerida ha sido correcta (por ejemplo, una transferencia o interrupción).

227 Iniciando modo pasivo.

230 Usuario conectado, continúe.

250 La acción sobre fichero solicitado finalizó correctamente.

257 "path" creado.

331 Usuario OK, necesita contraseña.

332 Necesita nombre de cuenta.

350 La acción requiere más información. Pendiente

421 Servicio no disponible, cerrando la conexión de control. Esta puede ser la respuesta a cualquier comando si el servidor sabe que debe finalizar.

425 No se puede abrir la conexión de datos.

426 Conexión cerrada; transferencia interrumpida.

450 Acción no realizada. Fichero no disponible (por ejemplo, fichero bloqueado).

451 Acción interrumpida. Error local.

452 Acción no realizada. Falta de espacio en el sistema de ficheros.

500 Error de sintaxis, comando no reconocido. Esto puede incluir errores como línea de orden demasiado larga.

501 Error de sintaxis en parámetros o argumentos.

502 Orden no implementada.

503 Secuencia de órdenes incorrecta.

Page 21: Comandos Ftp

504 Parámetro incorrecto para esa orden.

530 No está conectado.

532 Necesita una cuenta para almacenar ficheros.

550 Acción no realizada, Fichero no disponible (por ejemplo, fichero no existe, no se tiene acceso al mismo).

551 Acción interrumpida. Tipo de página desconocido.

552 Acción interrumpida. Se ha sobrepasado el espacio disponible de almacenamiento (para el directorio actual).

553 Acción no realizada. Nombre de fichero no permitido.

FTP switches

La utilidad ftp de linea de comandos que traen los sistemas operativos de microsoft permite una serie de switches o modificadores. Esta es su sintaxis completa:

Modificadores FTP. Sintaxis:FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-A] [-w:windowsize] [host]

–v No mostrar las respuestas del servidor FTP

–n Suprime el diálogo de login al conectar.

–i Desactiva el prompt interactivo en transferencias multiples.

–d Activa el modo debug, mostrando todos los comandos pasados entre cliente y servidor.

–g impide el uso de caracteres comodin en los nombres de archivo

–s: [filename]

especifica un archivo que contiene los comandos FTP a ejecutar. Preferible a la redirección (<).

–a Uso de cualquier interfaz local cuando vincule una conexión de datos.

–A Log en el servidor FTP como anónimo

–w:wsize Sobrescribe el tamaño de 4096 del búfer de transferencia predeterminado.

Hostname El nombre o dirección IP del servidor FTP. Debe ir en último lugar.

FTP automático

Podemos hacer uso del switch -s y de un archivo bat para automatizar las tareas ftp mas repetitivas. Vamos a ver un ejemplo muy sencillo. Supongamos que necesitamos

Page 22: Comandos Ftp

descargar frecuentemente de nuestro servidor un archivo (miarchivo.txt) y guardarlo en c: Mis Documentos. Necesitaremos dos archivos:

1.- Archivo bat. Escribimos:

ftp -s:C:\batch\inst.txt ftp.server.com

Al ejecutar este archivo bat, automáticamente se lanza la utilidad ftp del sistema; el switch -s indica que ejecute los comandos que encontrará en el fichero C:\batch\inst.txt y que conecte con el servidor ftp ftp.server.com.

Este archivo lo guardamos con la extensión bat en un directorio que esté en el path de windows.

2.- El archivo .txt será el que contenga las instrucciones o comandos FTP. En este caso lo llamamos inst.txt, aunque puede tener cualquier nombre o extensión:

nombre_usuariocontraseñalcd ..lcd "Mis Documentos"cd /www/main/includepwdasciiget miarchivo.txtquit

Las dos primeras lineas son nuestro nombre de usuario en el server ftp y nuestra contraseña.

Las instrucciones lcd las usamos para especificar que la descarga de archivos será al directorio local c:\mis documentos. Con cd /directorio/subdirectorio/ navegamos al directorio del server donde queremos trabajar. Mediante ascii especificamos el modo de transferencia, y con get ordenamos la descarga. Quit para cerrar la conexión.

Al ejecutar nuestro archivo bat, se abrirá una ventana DOS con este resultado:

C:\batch>ftp -s:C:\batch\inst.txt ftp.server.comConectado a ftp.server.com.220 Welcome to server.comUser:331 Password required for nombreusuario.

230 User nombreusuario logged in.ftp>ftp> lcd ..Directorio local ahora C:\.ftp> lcd c:\"mis documentos"Directorio local ahora C:\Mis documentos.ftp> cd /www/main/include250 CWD command successful.ftp> pwd257 "/www/main/include" is current directory.ftp> ascii200 Type set to A.ftp> get miarchivo.txt

Page 23: Comandos Ftp

200 PORT command successful.150 Opening ASCII mode data connection for miarchivo.txt (2410343 bytes).226 Transfer complete.ftp: 2424638 bytes received in 89.31Segundos 27.15KB/s.ftp> quit221 Goodbye.

Este procedimiento tiene el inconveniente de que almacenamos la contraseña y nombre de usuario en un archivo formato txt, accesible a todo el mundo (que tenga acceso a nuestro PC).

Si necesitamos seguridad adicional, podemos complicar un poco mas nuestro archivo bat, de forma que podamos prescindir del segundo fichero de texto que almacena los comandos (y entre ellos la contraseña):

@ECHO OFF:: Comprobar si hay contraseñaIF "%1"=="" GOTO Ayuda:: crear un archivo temporal llamado script.ftp:: el signo > y >> es para canalizar el texto.> script.ftp ECHO nombreusuario>>script.ftp ECHO %1>>script.ftp ECHO lcd ..>>script.ftp ECHO lcd c:\"mis documentos">>script.ftp ECHO cd /www/main/include>>script.ftp ECHO pwd>>script.ftp ECHO ascii>>script.ftp ECHO get miarchivo.txt>>script.ftp ECHO quit:: Usamos el archivo recien creado:FTP -s:script.ftp ftp.server.com:: sobreescribimos el fichero temporal y lo borramosTYPE NUL >script.ftpDEL script.ftpGOTO End

:AyudaECHO Uso: %0 password

:End

Y la forma de uso sería abrir una sesion DOS y escribir en ella