La compartición de archivos está marcada por el tipo de sistema de ficheros que se utilice. En linux el sistema de ficheros local es ext4 donde se utilizan los comandos chmod, chowm y chorro para modificar los permisos locales. Sin embargo si se quiere compartir un fichero a través de una red se utilizan diferentes tipos de protocolos dependiendo de los sistemas operativos que estén dentro de la propia red: NFS o Samba

chmod [nº usuario propietario][nº grupo propietario][nº resto usuarios] [ruta]
chown [propietario] [ruta]
chgrp [grupo propietario] [ruta]

NFS

NFS o Network File System es el protocolo de compartición de ficheros para máquinas linux a nivel de red. Con este protocolo se pueden compartir ficheros con ordenadores completos, no distinguiendo usuarios (de forma genérica, si se podrá hacer con los permisos locales de las carpetas montadas). Para poder utilizar NFS tan solo se necesita instalar un paquete en el ordenador desde el que se quiere compartir el recurso; nos-kernel-server

apt-get install nfs-kernel-server

Con este paquete se consigue que el ordenador actúe como servidor de archivos dentro de la red. Para poder agregar recursos compartidos se modifica el fichero de configuración /etc/exports donde se agregará la ruta del recurso a compartir y las IPs o nombres de red de los ordenadores con los que se comparte

[ruta_recurso] [IP o nombre/mascara](opciones)
/home/developandsystem/compartir_nfs 192.168.0.171/24(rw)

De esta forma el recurso compartir_nfs estará disponible para el equipo 192.168.0.171 con mascara de subred 24 en modo lectura y escritura. Una vez hecho esto el recurso ya estará

Es importante la sintaxis de este archivo ya que los espacios pueden indicar permisos para todos los equipos, al igual que indicar mediante los comodines * y ? la compartición a grupos de ordenadores. Por ejemplo:

#permios de lectura y escritura solo para 192.168.0.171
/home/developandsystem/compartir_nfs 192.168.0.171/24(rw)

#permios de lectura (los por defecto) para 192.168.0.171 y lectura-escritura para el resto
/home/developandsystem/compartir_nfs 192.168.0.171/24 (rw)

/home/developandsystem/compartir_nfs 192.168.0.171/24(r) 192.168.0.172/24(rw) otro(rw)

Una vez el recurso está compartido desde la máquina servidor, podremos verlo, acceder o montarlo desde el cliente. Antes de montar el recurso, para poder acceder al el mediante el protocolo nfs se debe instalar el paquete nfs-common

sudo apt-get install nfs-common portmap

Una vez instalados:

#ver recursos montados
showmount -e
#realizar un montaje temporal
mount 192.168.136.170:/compartida /compartida
#realizar un montaje defintivo
sudo nano /etc/fstab
#agregando en la ultima linea
192.168.136.170:/datos   /datos   nfs   defaults   0   0

SAMBA

En el caso de que se quiera compartir recursos entre máquinas cuyo protocolo de comparticion de archivos en red sea diferente, lo que hay que hacer es instalar un paquete que actué como traductor. Si en una infraestructura tenemos máquinas Linux y Windows, al ser los permisos de red tratados de forma diferente (nfs y smb respectivamente) sería imposible la compartición de recursos. Además de esto, samba permite personalizar los permisos de red por usuario, no solo por equipo.

Para poder llevar a cabo la compartición lo primero que hay que hacer es en la máquina que actuará como servidor instalar el demonio de samba mediante

apt-get install samba smbclient

De esta forma la máquina está preparada para poder compartir recursos. Si esta operación se ha dado con éxito podremos editar el siguiente fichero /etc/samba/smb.conf  o ejecutar el comando testparam . Este fichero guarda toda la configuración del servidor, desde donde publicaremos todos los recursos.

Algunos comandos interesantes a la hora de trabajar con samba son:

#encuentra máquinas clientes samba
findsmb
#cliente samba para trabajar recursos compartidos por consola
smbclient
#comando para descargar los ficheros de un servidor samba
smbget
#comando para mandar un archivo a imprimir
smbspool
#listado en formato arbol de los recursos
smbtree
#herramienta para la gestión de quotas en recursos smb
smbcquotas
#herramienta para trabajar con la funcion net de Windows
net

Usuarios en Samba

Los usuarios de samba son usuarios que previamente tienen que existir en el sistema, por lo que es imposible la independencia del mismo. Para poder agregar un usuario samba al sistema (previamente debe ser usuarios del sistema):

smbpasswd -a nombreUsuario

Ademas de la opción -a para agregar usuarios existen las siguientes opciones:

  • -x: elimina usuario
  • -d: deshabilita usuario
  • -e: habilita usuario
  • -n: establece la contraseña a null

Para poder ver cuales son los usuarios de samba que tiene el sistema registrados

pdbedit -L

El resto de comandos para el manejo de usuarios samba es igual al de usuarios – grupos del sistema

Rescursos en Samba

Para poder publicar un recurso compartido en samba se debe realizar en el archivo /etc/smaba/smb.conf y agregar el bloque de compartición al final del archivo. Las opciones que hay disponibles son:

Por ejemplo si queremos compartir un recurso situado en /home/developandsystem/recurso_samba solo visible para algunos usuarios sería e invisible para los usuarios de un grupo

[recurso_samba]
path = /home/developandsystem/recurso_samba
comment = "Recurso compartido de prueba"
browseable = yes
valid users = usuario1, usuario2
invalid users = @nombreGrupo

Hay que tener en cuenta que cada vez que se cree un nuevo recurso compartido hay que resetear el demonio que se encarga de la samba. Para ello ejecutamos lo siguiente:

/etc/init.d/samba restart
#o service smb restart

Acceso a los recursos

Desde un cliente podremos acceder a los recursos compartidos mediante samba. Para ello se necesita la instalación del paquete smbclient para poder trabajar con el recurso en consola

Para poder listar cuales son los recursos que está con partidos en red:

smbtree

y si queremos acceder al recurso directamente por consola:

Smbclient \\\\192.168.0.170\\recurso_samba -U usuarioSamba

Una vez ejecutado el comando se puede navegar y gestionar todos los recursos directamente desde consola mediante las ordenes mkdir, rmdir, ls, chmod, get, put

Si lo hiciesemos gráficamente basta con poner la dirección de red pero con el protocolo smb:

smb://192.168.0.170/recurso_samba

En el caso de querer hacer un montaje, necesitaremos la instalación del paquete cifs-util, ejecutando el siguiente comando

mount –t cifs –o username=user,password=pass \\\\192.168.0.170\\recurso_samba /home/developandsystem/montaje_temporal

Si el montaje fuese definitivo editaríamos el fichero /etc/fstab

//192.168.0.170/recurso_samba /home/developandsystem/montado_definitivo cifs defaults,username=usuarioSamba,password=samba 0 0