Compartiendo archivos con NFS, muy rápido

Enviado por yaco el 16 Agosto, 2004 - 00:28

Estaba pensando en escribir otro artículo bien cargado de posibilidades y opciones para compartir carpetas en Linux por NFS, pero creo que muchos quieren otra cosa, así que ahí van, las configuraciones que usamos cuando tenemos que compartir rápidamente archivos entre máquinas Linux y estamos en una red segura.

Aclaración

Compartir carpetas/archivos es una cuestión de confianza y otras cosas más complejas. Estas son configuraciones básicas, las que uso cuando vamos a una "lanparty" (o como le digan en su región/país). Son inseguras para ser usadas en una red de producción, o sea no se atrevan a compartir información a nivel profesional/empresarial sin antes leer las páginas man de NFS y/o algún material específico sobre seguridad en NFS.


Instalar NFS

Primero lo primero, instalar NFS, para ello usamos el comando:

urpmi nfs-utils nfs-utils-clients portmap

De ese modo instalo todo lo que hace falta para poder compartir y acceder a carpetas compartidas en la red en máquinas Linux.

Compartiendo por NFS

En NFS las carpetas compartidas, los directorios, pueden estar montados localmente en cualquier parte del árbol raíz del sistema (/), y estar ubicados físicamente en otra máquina de la red.

Configurando la carpeta/s compartida

Vamos al directorio /etc y editamos el archivo exports para configurar qué carpeta/s quiero compartir:

#

/mnt *(ro)

/home/yaco/Documentos *(ro)

# "*" indica qué máquinas y/o usuarios van poder acceder a la carpeta compartida

# el asterisco quiere decir TODOS.

#

# el "(ro)" indica el tipo de acceso que van a tener los usuarios al directorio

# (ro) es read only, acceso de solo lectura

# (rw) es read write, acceso que permite leer y escribir en el directorio

# como pueden ver aquí comparto mi carpeta de dispositivos removibles

# esto podría ser útil para compartir algún dispositivo como una lectora DVD

# por ejemplo.

/opt/pub *(rw)

# este directorio es donde los invitados pueden copiarme archivos

Para activar los cambios y hacer disponibles las carpetas en la red:

service portmap restart

service nfs restart

Estos dos servicios deben ser iniciados/reiniciados en ese orden para que todo funcione bien.

El reinicio múltiple es un tanto redundante y forzado, pero a veces es necesario. El comando que realmente actualiza la lista de carpetas compartidas por NFS de forma "correcta" es:

exportfs -ra

El comando exportfs te permite trabajar con carpetas compartidas de modo individual, su tarea específica es administrar la lista de carpetas compartidas por NFS.


Montar directorios compartidos

El comando para ello es un simple montaje:

mount -t nfs 192.168.1.12:/opt/pub /mnt/nfs/1

El "-t nfs" es casi algo superfluo, sirve para especificarle a mount que es una carpeta compartida NFS lo que va a montar. Luego viene la dirección IP de la PC que tiene la carpeta compartida, después el directorio compartido y por último el directorio donde queremos montar en nuestra PC.

Errores muy, pero muy comunes: escribir la IP y el directorio sin los dos puntos, así "192.168.1.12/opt/pub"; el otro es escribir sin la barra después de los dos puntos, así: "192.168.1.12:opt/pub".

Y listo, ahora el directorio remoto ya es parte de nuestro árbol y podemos trabajar con él con cualquier programa estándar, leyendo y/o escribiendo, según como lo hayan compartido.


Extra: Buscar directorios compartidos

Para montar las carpetas que tiene compartidas una PC, primero necesitamos saber la dirección IP de la máquina o su nombre de host. Lo primero lo averiguamos ejecutando en esa PC el comando:

ifconfig

Deberías obtener una salida similar a esta:

----------

eth0 Link encap:Ethernet HWaddr 00:E0:7D:90:B7:23

inet addr:192.168.1.12 Bcast:192.168.1.255 Mask:255.255.255.0

.

.

. (continúa con más datos)


----------

Así obtienes la dirección IP de la PC (en negritas en el ejemplo).

El nombre de host lo averiguamos con el comando

hostname

Para ver qué directorios tiene compartidos, ejecutar sobre ella el comando:

showmount (así, sin argumentos)

El comando anterior muestra las carpetas disponibles al momento. Si el usuario/adm. de la PC modifica el /etc/exports, hacer un cat /etc/exports, solo mostrará las carpetas que pueden ser compartidas pero que sin un exportfs -ra, todavía no están disponibles.

Para buscar carpetas compartidas en PCs remotas, el comando es:

showmount host

Donde "host", es el nombre de la PC en la red (el de hostname), o su nro. IP.



Posibilidades de NFS:

El tener la carpeta remota como parte del árbol local crea posibilidades interesantes, como por ejemplo, tener ciertos directorios del árbol raíz (/), en una sola PC de la red y compartidos a varias (tener en cuenta aquí la velocidad general del hardware del servidor donde ubicamos esas carpetas). Por ejemplo un directorio /opt/Mandrake, donde ubiquemos todas las carpetas de los 3 CDs de la Mandrake (o más o menos, según la versión que tengan), y dejarla accesible para todos los Mandrakes de nuestra red.


Recomendaciones finales:

Ver las páginas man de export y exportfs.


Enlaces

(Gracias Bulma :-), de nuevo

Compartiendo archivos con NFS

Un tutorial similar a éste, pero con un poco más de detalles sobre seguridad y un par de comandos más. De lectura recomendada para ampliar, y para leer de nuevo las explicaciones pero con otro enfoque.

Servicios RPC: NIS y NFS

Una explicación extensiva de los servicios RPC, la base de NFS. Incluye explicaciones bastante completas de comandos y configuraciones a nivel servidor y seguridad sobre NFS.

Comentarios

2 comentarios escritos

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.
Buen artículo.

Enhorabuena Yaco.

Un gran artículo. Me ha gustado muchísimo.

Muchas gracias por currartelo tanto.

Saludos.

--
Gravatar de jlas9
Escrito por jlas9 el 23 Agosto, 2004 - 17:16
Truquis

1. En el cliente, asegurate de tener el servicio portmap activado, o tardaras unos 20 minutos en montar un directorio remoto

2. si tienes clientes de NFS Mac OS X (esos iBook ...), tu /etc/exports tiene que ser especial para ellos.

Por ejemplo.

Tienes el directorio a exportar "/opt/export". Y tienes un sistema con Mac OS X (de hostname "cupertino") y una red privada donde estan el resto de clientes (Linux y/o Windows) en 192.168.10.0

Para ello, crea 2 entradas por directorio a compartir en /ec/exports tal que asi:

/opt/export cupertino(ro,insecure,no_root_squash)
/opt/export 192.168.10.0/255.255.255.0(rw,no_root_squash,sync)

Salut,
Sinner

--

Salut,
Sinner


Linux User # 89976 - Blog de SinnerBOFH
Gravatar de SinnerBOFH
Escrito por SinnerBOFH el 25 Agosto, 2004 - 03:02

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.