Este capítulo analizará algunas características avanzadas del servidor
FTP tal como se implementó en Multimax. La introducción de FTP en UNIX
para usuarios principiantes brindó una introducción elemental a algunas
de las características. Si no está familiarizado con los conceptos
básicos, consulte ese manual. No es el propósito de revisar esos
conceptos básicos aquí.
El FTP (programa de transferencia de archivos de Internet) es la
interfaz de usuario del Protocolo de transferencia de archivos DARPA.
Este programa de utilidad transferirá archivos hacia y desde una
computadora remota. Para que los archivos se transfieran desde la
computadora local a una computadora remota, se debe establecer una
conexión. Esto se puede hacer desde la línea de comandos FTP. La
conexión con la computadora remota permanecerá activa hasta que el
usuario la finalice.
La computadora remota con la que se realizará la conexión se puede
especificar en el comando FTP. En este caso, FTP intentará establecer
una conexión de inmediato. Si no se especifica la computadora remota,
FTP ingresará en su modo de intérprete de comandos y esperará
instrucciones; se mostrará un mensaje.
FTP tiene una función de ayuda y se pueden enumerar los 58 comandos.
También brindará una breve descripción de cada comando. Además, existen
páginas de manual en línea a las que se puede acceder mediante el
comando man en UMAX.
9.1 Inicialización de FTP en UMAX
El término "computadora local" se referirá a Multimax. El término
"computadora remota" se referirá a la otra computadora con la que está
intentando enviar/recibir archivos. Para los fines de este curso, nos
referiremos a la minicomputadora VAX como la computadora remota. Tenga
en cuenta que estos procedimientos funcionarán para cualquier
computadora conectada a Ethernet y que tenga un servidor FTP.
Se puede invocar FTP en la computadora local utilizando la siguiente
sintaxis:
+===============================================================+
| Command Format: ftp [-v] [-d] [-i] [-n] [-g] [host] |
| |
| -v = verbose on, forces ftp to show all responses |
| from the remote server |
| |
| -d = enables debugging |
| |
| -i = turn off interactive prompting during |
| multiple file transfers. |
| |
| -n = disables the "auto-login" feature |
| |
| -g = disable filename globbing |
| |
| host = the name of the remote computer |
+===============================================================+
NOTA: UMAX (UNIX) distingue entre mayúsculas y minúsculas. Los comandos
y las opciones se deben ingresar como se muestra.
La especificación de comodín de la computadora remota se expande en un
proceso llamado globbing. Una vez que se completa el globbing, se
realiza una operación de obtención en cada nombre de archivo y se
transfiere al equipo local. El nombre de archivo es el mismo en ambos
equipos. Puede especificar los nombres de archivo que se transferirán
separándolos con espacios.
Este comando transferirá todas las versiones de los archivos remotos que
tengan la extensión de nombre de archivo .dat. Si se especificó la
opción -i en la llamada a FTP, los archivos se transferirán
automáticamente. Si no se especificó la opción, FTP le preguntará antes
de transferir cada archivo.
El valor predeterminado es "sí", al presionar (Ret) se enviará el
archivo al directorio local. Si no desea que se transfiera este archivo,
ingrese n(Ret); luego se le solicitará el siguiente archivo, si existe
alguno.
9.3 Función de inicio de sesión automático
Es posible que el procedimiento de inicio de sesión se realice
automáticamente. Para ello, se requiere un archivo en su directorio de
inicio llamado .netrc. El archivo .netrc contiene información de inicio
de sesión e inicialización que se utilizará en el proceso de inicio de
sesión automático. Se utilizan las siguientes variables y se pueden
separar por espacios, tabulaciones o nuevas líneas.
nombre de la máquina
Este es el nombre de la computadora remota. El proceso de inicio de
sesión automático buscará en el archivo .netrc una variable de máquina
que coincida con el nombre de la computadora remota en el comando ftp o
como argumento del comando abierto. Una vez que se encuentra una
coincidencia, las siguientes variables también se procesan hasta que se
encuentra el final del archivo o se encuentra otra variable de máquina.
nombre de inicio de sesión
Este es el nombre de usuario en el sistema remoto. Si esta variable está
presente, el proceso de inicio de sesión automático iniciará sesión en
la computadora remota con el nombre de usuario indicado.
password string
Esta es la contraseña que se utilizará al iniciar sesión en el sistema
remoto.
NOTA: Si esta variable está presente en el archivo .netrc, ftp abortará
el proceso de inicio de sesión automático si el archivo .netrc es
legible por cualquier persona que no sea el usuario.
account string
Esto proporciona una contraseña de cuenta adicional. Si está presente,
el proceso de inicio de sesión automático proporcionará la cadena como
una contraseña adicional si lo requiere el servidor remoto.
macdef name
Esto define una macro. Esta variable funcionará como el comando ftp
macdef. Una macro se define con el nombre especificado, su contenido
comienza con la siguiente línea .netrc y continúa hasta una línea nula
(2 caracteres de nueva línea). Si se define una macro llamada init, se
ejecutará como el último paso del proceso de inicio de sesión
automático.
Para invocar la función de inicio de sesión automático, escriba el
comando ftp e ingrese el nombre de la computadora remota como argumento.
Sesión de Ejemplo:
+---------------------------------------------------------------+
| $ ftp erc830 |
| Connected to erc830. |
| 220 erc830 Wollongong FTP Server (Ver 5.0) at Tue Oct 23 |
| 331 Password required for rharding. |
| 230 User logged in, default directory D_1131:[RHARDING] |
| ftp> |
+---------------------------------------------------------------+
Si el archivo .netrc es legible por cualquier persona que no sea el
usuario, aparecerá el siguiente mensaje de error y no se realizará la
conexión a la computadora remota.
Sesión de Ejemplo:
+---------------------------------------------------------------+
| $ ls -l .netrc |
| $ ftp erc830 |
| Connected to erc830. |
| 220 erc830 Wollongong FTP Server (Ver 5.0) at Tue Oct 23 |
| Error - .netrc file not correct mode. |
| Remove password or correct code. |
| 221 Goodbye. |
| ftp> |
+---------------------------------------------------------------+
Para corregir este error, cambie el modo del archivo .netrc para que no
sea legible por otros usuarios o elimine la contraseña del archivo. Esto
es para evitar que un usuario no autorizado pueda leer su contraseña.
9.4 Macros
Las macros son una única instrucción que un programa reemplaza por
varias instrucciones, generalmente más complejas. El comando ftp para
crear una definición de macro es:
+===============================================================+
| Command Format: macdef macro-name |
| |
| macro-name - the name of the macro |
+===============================================================+
Después de ejecutar el comando macdef, todas las líneas subsiguientes se
almacenan como una macro con el nombre macro_def. Los caracteres de
nueva línea o retornos de carro consecutivos finalizan el modo de
entrada en la macro. Hay un límite de 16 macros definidas y un límite de
4096 caracteres en todas las macros definidas.
Sesión de Ejemplo:
+---------------------------------------------------------------+
| ftp> macdef get_files |
| open erc780 |
| get file_1 |
| put result_2 |
| close |
| ftp> |
+---------------------------------------------------------------+
En este ejemplo, las cuatro líneas de la macro se pueden ejecutar
simplemente ingresando get_files en el indicador de FTP. La macro solo
existirá hasta que se cierre la sesión FTP actual.
9.5 Traducción de nombres de archivo
Las convenciones de nombres de archivo difieren de una computadora a
otra, y FTP le permitirá traducir el nombre a medida que se transfiere.
Una forma es especificar el nombre del archivo tal como existirá en la
computadora local. Esto se hace mediante el argumento del comando put o
get.
+===============================================================+
| Command Format: put local-file [remote-file] |
| |
| get remote-file [local-file] |
+===============================================================+
Si no especifica el archivo remoto (para el comando put) o el archivo
local (para el comando get), el nombre será el mismo en la computadora
local y en la remota. Esto puede causar un problema si no lo sabe. Hay
un comando FTP que permitirá traducir el nombre automáticamente.
Si no se proporcionan argumentos, se activará o desactivará el mecanismo
de asignación de nombres de archivo. Si se especifican argumentos, los
nombres de archivo remotos se asignan durante los comandos mput
(múltiples archivos) y put (un solo archivo) que se emiten sin un nombre
de archivo remoto especificado.
Si se especifican argumentos, los nombres de archivo locales se asignan
durante los comandos mget (múltiples archivos) y get (un solo archivo)
que se emiten sin un nombre de archivo local especificado.
La asignación sigue el patrón establecido por inpattern y outpattern. La
creación de plantillas de variables se realiza incluyendo las secuencias
"$1", "$2",...."$9 "en inpattern. Todos los demás caracteres se tratan
de manera literal y se utilizan para determinar los valores de la
variable inpattern de nmap.
Por ejemplo, supongamos que inpattern era $1.$2 y el nombre de archivo
remoto es mydata.data, $1 tendría el valor mydata y $2 tendría el valor
data. outpattern determina el nombre de archivo asignado resultante. Las
secuencias "$1", "$2",..."$9", se reemplazan por el valor resultante de
la plantilla inpattern. "$0" se reemplaza por el nombre de archivo
original.
9.6 Interrupción de transferencias
Presione la tecla de interrupción de terminal (normalmente Ctrl-C) para
interrumpir una transferencia de archivo. La transferencia de envío se
detendrá inmediatamente. Las transferencias de recepción se detendrán
cuando FTP envíe un comando ABOR al servidor remoto y descarte cualquier
dato adicional que se reciba.
Si el servidor remoto no admite el comando de protocolo ABOR, el mensaje
ftp> no aparecerá hasta que se haya enviado el archivo solicitado.
9.7 Más comandos de la computadora remota
Estos comandos pueden ser útiles cuando se trabaja con los directorios
en la computadora remota:
Este comando FTP cambiará el directorio de trabajo actual de la máquina
remota al directorio principal del directorio de trabajo actual.
+===============================================================+
| Command Format: delete remote-file |
| |
| remote-file name of the file to delete |
+===============================================================+
Este comando FTP eliminará el archivo especificado.
+===============================================================+
| Command Format: mdelete [remote-files] |
| |
| remote-files names of the files to delete |
+===============================================================+
Este comando FTP actúa como una eliminación múltiple. Eliminará todos
los archivos especificados.
+===============================================================+
| Command Format: mkdir directory-name |
| |
| directory-name the name of the directory to be created |
| on the remote computer. |
+===============================================================+
Este comando FTP creará un directorio en la computadora remota.
+===============================================================+
| Command Format: rmdir directory-name |
| |
| directory-name the name of the directory on the remote |
| computer that will be removed. |
+===============================================================+
Este comando FTP eliminará el directorio especificado.
NOTA: Este comando no funcionará con algunos servidores remotos.
Trabajo Pŕactico Número 10
Este trabajo práctico reforzará su comprensión de las ideas presentadas
en este capítulo. Inicie sesión con el nombre de usuario y la contraseña
que le proporcionó el instructor. Cada estudiante debe completar todo el
taller.
EJERCICIOS DE ESCRITORIO (10 minutos)
1. ¿Qué comando FTP se utiliza para transferir más de un archivo a la
vez? ¿Qué comando FTP le dará un mensaje antes de recuperar cada
archivo? Sugerencia: hay dos formas
2. ¿Cuál es el nombre del archivo donde se encuentran las variables de
inicio de sesión automático? Crédito adicional: ¿Por qué este archivo
comienza con un punto (.)?
3. ¿Cómo se puede proteger el archivo en cuestión, el archivo de inicio
de sesión automático, contra lecturas no autorizadas?
4. ¿Qué hacen los siguientes comandos FTP?
cdup
delete (pregunta difícil)
mdelete (ídem)
mkdir
rmdir
EJERCICIOS DE COMPUTADORA (30 minutos)
5. Transfiera todos los archivos desde el VAX (erc830) al domax1. Use
solo un comando y utilice comodines. El instructor le proporcionará el
nombre de usuario y la contraseña para el VAX.
6. Transfiera los archivos desde el VAX y esta vez traduzca los nombres
de los archivos a medida que se transfieren.
7. Cree un archivo de inicio de sesión automático para el erc830 y luego
realice un inicio de sesión automático en el VAX.