Configuración de Samba y NFS en Linux para Compartir Archivos en Red
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 10,76 KB
Introducción a Samba y NFS
Samba se utiliza para compartir archivos y recursos entre equipos Linux y Windows, facilitando la interoperabilidad. Por otro lado, NFS (Network File System) es un protocolo nativo en sistemas Linux diseñado específicamente para compartir carpetas en red dentro de entornos Unix/Linux, destacando por su estabilidad.
Configuración de Samba
Instalación de Samba
- Ubuntu/Debian:
sudo apt-get update
sudo apt-get install samba smbclient
(Nota: samba4 es parte del paquete samba moderno) - Fedora/CentOS/RHEL:
sudo yum install samba samba-client
osudo dnf install samba samba-client
Gestión del Servicio Samba
- Iniciar Servicio:
- Ubuntu/Debian (Systemd):
sudo systemctl start smbd nmbd
- Fedora/CentOS/RHEL (Systemd):
sudo systemctl start smb nmb
- Sistemas más antiguos (SysVinit):
sudo service smbd start
osudo /etc/init.d/smbd start
- Ubuntu/Debian (Systemd):
- Reiniciar Servicio:
- Ubuntu/Debian (Systemd):
sudo systemctl restart smbd nmbd
- Fedora/CentOS/RHEL (Systemd):
sudo systemctl restart smb nmb
- Sistemas más antiguos (SysVinit):
sudo service smbd restart
osudo /etc/init.d/smbd restart
- Ubuntu/Debian (Systemd):
- Habilitar al inicio:
- Ubuntu/Debian (Systemd):
sudo systemctl enable smbd nmbd
- Fedora/CentOS/RHEL (Systemd):
sudo systemctl enable smb nmb
- Ubuntu/Debian (Systemd):
Configuración Principal
El archivo de configuración principal de Samba se encuentra en /etc/samba/smb.conf
. Para modificarlo, puedes usar un editor de texto como nano:
sudo nano /etc/samba/smb.conf
Después de modificar la configuración, recuerda reiniciar el servicio Samba para aplicar los cambios.
Gestión de Usuarios de Samba
Samba requiere que los usuarios del sistema Linux sean añadidos también a la base de datos de Samba con una contraseña.
- Añadir un usuario (el usuario debe existir previamente en Linux):
sudo smbpasswd -a nombre_usuario
Ejemplo:sudo smbpasswd -a antonio
- Eliminar un usuario:
sudo smbpasswd -x nombre_usuario
Ejemplo:sudo smbpasswd -x antonio
- Ver usuarios de Samba:
sudo pdbedit -L -w
Opciones comunes de smbpasswd
:
-a
: Añade un usuario.-x
: Elimina un usuario.-d
: Deshabilita un usuario.-e
: Habilita un usuario.-n
: Establece la contraseña a null (sin contraseña).
Compartir Carpetas (Configuración en smb.conf
)
Ejemplo Básico de Recurso Compartido Público
Añada lo siguiente al final de /etc/samba/smb.conf
:
[publico]
comment = Carpeta de acceso publico
path = /ruta/a/la/carpeta/publica # Asegúrese de que esta ruta exista
public = yes
guest ok = yes
read only = yes # 'yes' significa solo lectura, 'no' permite escritura
writable = no # Equivalente a read only = yes
Opciones Comunes para Compartir Carpetas
[nombre_recurso]
: Define el nombre con el que se verá la carpeta compartida en la red.comment
: Descripción del recurso compartido.path
: Ruta absoluta del directorio en el servidor Linux que se va a compartir.browseable
: (yes/no) Indica si el recurso compartido debe ser visible en la lista de recursos del servidor.read only
: (yes/no) Si es 'yes', el recurso es de solo lectura. Si es 'no', se permite escritura (equivalente awritable = yes
).writable
: (yes/no) Alias pararead only = no
.guest ok
: (yes/no) Permite o deniega el acceso a usuarios invitados (sin autenticación). Alias:public
.valid users
: Lista de usuarios o grupos (con @ prefijo, ej:@grupo
) que tienen permitido el acceso. Separe los nombres con comas.write list
: Lista de usuarios o grupos (con @ prefijo) que tienen permiso de escritura, incluso siread only = yes
está configurado globalmente para el recurso.create mode
: Permisos por defecto para los nuevos ficheros creados (ej:0664
).directory mode
: Permisos por defecto para los nuevos directorios creados (ej:0775
).force user
: Fuerza a que todos los archivos/directorios creados pertenezcan a este usuario.force group
: Fuerza a que todos los archivos/directorios creados pertenezcan a este grupo.
Ejemplo: Compartir Carpeta para Usuarios y Grupo Específicos
[miscosas]
comment = Datos y aplicaciones personales
path = /datos/
valid users = juan, encarni, @master # El grupo 'master' debe existir en Linux
writable = yes
browseable = yes
Ejemplo: Compartir Impresoras
[printers]
comment = Todas las impresoras
path = /var/spool/samba
browseable = no
printable = yes
public = no
writable = no
create mode = 0700
Herramientas Gráficas de Configuración
Existen herramientas con interfaz gráfica para facilitar la configuración de Samba:
system-config-samba
(Puede requerir instalación)- Webmin (Interfaz de administración web)
- SWAT (Herramienta web antigua, puede no estar disponible o recomendada en sistemas modernos)
- Para impresoras:
system-config-printer
Estas herramientas suelen permitir importar usuarios del sistema y configurar los recursos compartidos de forma visual.
Configuración de NFS (Network File System)
NFS es ideal para compartir directorios entre sistemas Linux/Unix.
Instalación de NFS
- Ubuntu/Debian:
sudo apt-get update
sudo apt-get install nfs-kernel-server nfs-common
(portmap/rpcbind suele ser una dependencia) - Fedora/CentOS/RHEL: Generalmente viene instalado. Si no:
sudo yum install nfs-utils
osudo dnf install nfs-utils
Gestión del Servicio NFS
- Iniciar Servicio:
- Ubuntu/Debian (Systemd):
sudo systemctl start nfs-kernel-server
- Fedora/CentOS/RHEL (Systemd):
sudo systemctl start nfs-server
- Sistemas más antiguos (SysVinit):
sudo service nfs-kernel-server start
osudo /etc/init.d/nfs-kernel-server start
/sudo service nfs start
- Ubuntu/Debian (Systemd):
- Habilitar al inicio:
- Ubuntu/Debian (Systemd):
sudo systemctl enable nfs-kernel-server
- Fedora/CentOS/RHEL (Systemd):
sudo systemctl enable nfs-server
- Ubuntu/Debian (Systemd):
- Aplicar cambios en exports (sin reiniciar):
sudo exportfs -ra
Configuración de Carpetas Compartidas (Exports)
La configuración de qué carpetas compartir y con quién se realiza en el fichero /etc/exports
.
La sintaxis básica es: /ruta/directorio cliente1(opciones) cliente2(opciones) ...
Ejemplo de Configuración en /etc/exports
Para compartir la carpeta /datos
con el equipo 192.168.20.9
con permisos de lectura/escritura (rw
) y con el equipo 192.168.20.8
solo con permisos de lectura (ro
), añada la siguiente línea a /etc/exports
:
/datos 192.168.20.9(rw,sync,no_subtree_check) 192.168.20.8(ro,sync,no_subtree_check)
Nota: Es recomendable añadir opciones como sync
(espera a que la escritura se complete en disco) y no_subtree_check
(mejora la fiabilidad).
Después de editar /etc/exports
, ejecute sudo exportfs -ra
para aplicar los cambios.
Montaje de Recursos NFS en el Cliente
Montaje Manual
Para montar temporalmente una carpeta NFS compartida desde un servidor (ej: 192.168.20.100
) en un punto de montaje local (ej: /mnt/trabajo
o /prueba
):
- Asegúrese de que el punto de montaje existe:
sudo mkdir /mnt/trabajo
- Ejecute el comando mount:
sudo mount 192.168.20.100:/datos /mnt/trabajo
Donde 192.168.20.100:/datos
es el recurso compartido (servidor:/ruta/exportada) y /mnt/trabajo
es el directorio local donde se montará.
Montaje Automático (al inicio del sistema)
Para que el recurso NFS se monte automáticamente cada vez que el cliente inicie, edite el fichero /etc/fstab
y añada una línea como la siguiente:
sudo nano /etc/fstab
Añada la línea (asegúrese de usar tabulaciones o espacios consistentes entre campos):
192.168.20.100:/datos /mnt/trabajo nfs defaults,rw,hard,intr 0 0
Explicación de Opciones Comunes en fstab
para NFS:
rw
: Monta el sistema de ficheros en modo lectura/escritura. Usero
para solo lectura.hard
: Si el servidor NFS deja de responder, los programas que intenten acceder al recurso esperarán indefinidamente hasta que el servidor vuelva a estar disponible. Es la opción por defecto y generalmente recomendada para asegurar la integridad de los datos. (Contrasta consoft
, que puede causar errores o corrupción si el servidor no responde).intr
: Permite interrumpir (con Ctrl+C, por ejemplo) un proceso que está bloqueado esperando al servidor NFS (en modohard
). Útil para evitar bloqueos irrecuperables.defaults
: Utiliza un conjunto de opciones predeterminadas (que suelen incluirrw
,suid
,dev
,exec
,auto
,nouser
,async
). Puede ser conveniente especificar las opciones explícitamente.0 0
: Estos son los campos para `dump` y `fsck` (chequeo del sistema de ficheros). Para NFS, generalmente se establecen en 0.
Para montar todo lo definido en /etc/fstab
sin reiniciar: sudo mount -a