#4sysadmins

Inicio » GNU/Linux » Como compartir archivos en GNU/Linux

Como compartir archivos en GNU/Linux

Últimas Entradas

Follow #4sysadmins on WordPress.com

Bueno en esta entrada voy comentar algunas formas de compartir archivos en Linux para aquellos que estéis iniciando. Como hago prácticamente siempre, empezaremos con algo de teoría pues las cosas rápidas pueden sacarnos del apuro ahora mismo, pero lo ideal es aprender lo que hacemos y porqué lo hacemos.

Lo primero que deberemos de tener en cuenta es que queremos compartir y con que medios contamos ¿por qué? pues por que dependiendo de la necesidad lo haremos de una u otra forma.

Nota: Si estás buscando algo rápido para salir del paso y que no va a ser permanente, te aconsejo que vayas directamente a la sección de compartir archivos mediante HTTP.

 

Ver pelis, imágenes o reproducir música

Bueno si el objetivo es ver películas, imágenes o reproducir música en un dispositivo lo mejor será compartir en streaming, es decir utilizaremos el protocolo DLNA/UPnP.

El escenario mas común es que contemos con un servidor donde tenemos descargadas nuestras pelis y canciones favoritas, y queremos reproducirlas por ejemplo en la TV o un Smartphone.

Anteriormente ya escribí sobre esto una entrada en la que comentaba algunas de las aplicaciones para servidores y dispositivos, y como configurarlas por lo que si es nuestro caso, ya saben click en el link y funcionando!!

 

Compartir archivos en una red donde solo existe Linux

En este caso la necesidad es la de compartir carpetas/archivos entre dos o mas ordenadores de nuestra red casera. Para esto contamos con SAMBA O NFS. Si solo vamos a compartir contenido con ordenadores cuyo sistema operativo es Linux la mejor opción es montar un NFS (Network File System) aunque también valdría SAMBA.

Nota: Veremos como compartir archivos con samba en la siguiente sección

NFS es prácticamente una carpeta alojada en un sistema (normalmente el servidor, aunque puede ser entre cliente-cliente) que se exporta/monta en otros sistemas conservando además los permisos y propietarios de las carpetas/archivos. Esto es bueno y no lo es, ya que de no existir los usuarios/grupos en la máquina remota (el cliente, donde exportamos/montamos la carpeta) no aparecerán y podremos vernos ante problemas de acceso a los mismos. Imaginemos que los archivos de NFS tienen como grupo principal el grupo ‘users‘ y solo los miembros de este grupo tienen acceso al contenido, pues si en nuestra máquina no existe este grupo o existe pero no somos miembros, no podremos acceder a las carpetas.

Para solucionar este inconveniente podríamos utilizar un servidor LDAP (Lightweight Directory Access Protocol) o NIS (Network Information Service) siendo está última opción la mas recomendada por su facilidad de implementación.

AVISO: Existe otra posibilidad mucho mas sencilla pero algo ‘espartana‘ y es la siguiente. Si tenemos pocas máquinas en nuestra red (2 o 3), contamos con pocos movimientos de usuarios, es decir es para algo doméstico y tenemos un par de usuarios y grupos, y además no solemos crear/eliminar nuevos usuarios/grupos con frecuencia, podremos copiar el contenido de los archivos /etc/passwd, /etc/group y /etc/shadow de la máquina que exporta NFS al resto de máquinas donde montaremos el directorio compartido. Es importante añadir el contenido y no machacar nuestros archivos, pues si tenemos usuarios en nuestros pc’s que no existen en los archivos del servidor NFS estaremos algo jodidos :D. Con esto contaremos con los usuarios necesarios para acceder al contenido de NFS.

Nota: Puedes aprender a enviar archivos de forma segura con scp en la última sección de esta entrada

Si este método es el que se ajusta a tu entorno, lea la entrada de como compartir archivos con NFS y NIS.

 

Compartir archivos en una red mixta (pc’s con Windows y pc’s con Linux)

Bueno si tenemos un servidor o nuestro propio ordenador personal con Linux y queremos compartir archivos con otros ordenadores de la red (algunos son Linux y otros MS Windows) la mejor opción es utilizar el servidor SAMBA.

Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que computadoras con GNU/Linux, Mac OS X, Unix o Windows sean capaces de ‘verse’ y compartir archivos entre si .

Nota: Samba no conserva permisos, propietarios ni grupos, aplica permisos 777 por lo que si que tendremos permisos, pero una seguridad mas precaria

Bueno ahora que ya conocemos algo sobre samba explicaremos por encima el proceso para compartir archivos desde nuestra pc.

Básicamente lo que se hace es instalar un paquete (samba) en nuestro ordenador (ya sea con yum si es para rpm o con apt-get si andamos con Debian), configurar mediante su archivo de configuración (/etc/samba/smb.conf) de manera que indiquemos que directorios/impresoras son las que queremos compartir e iniciar el servicio.

Si esto es lo que estás buscando, puedes entrar en la siguiente entrada donde explicaré como instalar y configurar samba

 

Compartir archivos mediante servidor HTTP

Quizás esta sea la forma mas rápida (y la mas sencilla de implementar) para compartir una jerarquía de directorios en la red.

Podemos hacerlo de diversas formas, casi todas igual de sencillas y rápidas. Este método suele utilizarse cuando el instalar un NFS, SAMBA o algún servidor de Streaming resulta demasiado ‘pesado‘ para al fin y al cabo compartir con algún compi de la oficina o en la red local de casa unos archivos/carpetas.

Esto podremos hacerlo instalando servidores web como apache o nginx, descargando el paquete xampp, utilizando webfs o directamente SimpleHTTPServer que implementa Python.

En la siguiente entrada veremos como compartir archivos con cada uno de los servicios anteriormente citados.

 

Compartir archivos mediante servidor FTP

Quizás esta sea la forma mas desaconsejada por diferentes motivos: suele ofrecer las tasas de transferencias mas lentas, es menos seguro y además debemos de contar con un cliente FTP. Aún así, resulta interesante en algunos entornos, como por ejemplo si queremos que cada usuario cliente (es decir el que va a acceder a una carpeta concreta de las que hay compartidas) haga login con su usuario y contraseña, encerrar a este dentro de ese directorio sin dejarle ver lo que hay ‘fuera‘, o si tenemos un servidor web y queremos subir contenido a este.

El puerto que utiliza FTP es el 21, lo digo por si tenemos que abrirlo para acceder desde fuera de nuestra red.

Para aprender a instalar un servidor FTP en Linux puedes acceder a la siguiente entrada.

 

Compartir archivos con SSH

Bueno este método no es precisamente la mejor manera de compartir archivos pero lo voy a comentar simplemente por si tuviésemos que recurrir a él, que seguro que si.

Si nos vemos en la necesidad de enviar unos archivos de un host local con Linux a otro host remoto con Linux (por ejemplo si hemos utilizado el método de compartir archivos con NFS y necesitásemos enviar los archivos de usuarios a través de la red) podremos hacerlo con SCP (Secure Copy) que utiliza el protocolo SSH (Secue SHell)

Para utilizar SCP lo primero será comprobar si lo tenemos instalado:

$ scp
command not found

Vaya, es raro (normalmente este paquete viene instalado) de todos modos si no lo tenemos pues nada, vamos a instalarlo:

$ sudo apt-get install openssh-client    ## Debian
$ sudo yum install openssh-client    ## RPM

Probamos…

$ scp
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2

Como ya hemos visto, utilizarlo es igual que como si se tratase del comando cp, cuya sintaxis es:

$ cp <archivo origen> <destino>

A diferencia que aquí debemos de indicar el usuario@host donde queremos enviarlo. Vamos a suponer que queremos enviar el archivo /etc/passwd al host remoto 192.168.20.36 cuyo usuario (usuario con el que tenemos acceso) es nebul4ck (deberemos obviamente de conocer la passwd) y el directorio destino es /home/nebul4ck/info

$ scp /etc/passwd nebul4ck@192.168.20.36:/home/nebul4ck/info

Nota: Podemos cambiarle de nombre si indicamos el archivo destino tal que así: /home/nebul4ck/info/contraseñas

 

Pues listo! hasta aquí la entrada de hoy. Compartan, compartan… J

 

 


Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: