Instalar Y Configurar Servidor Samba En Ubuntu Para Compartir Archivos

En este tutorial, vamos a aprender a Instalar Y Configurar Servidor Samba En Ubuntu para compartir archivos en la red local. Samba es una implementación del protocolo SMB/CIFS libre y de código abierto para Unix y Linux que permite compartir archivos e impresiones entre máquinas Unix/Linux, Windows y macOS en una red de área local.

Samba suele instalarse y ejecutarse en Linux. Se compone de varios programas que sirven para propósitos diferentes pero relacionados, los dos más importantes son

  • smbd: proporciona el servicio SMB/CIFS (compartir archivos e imprimir), también puede actuar como controlador de dominio de Windows.
  • nmbd: Este demonio proporciona el servicio de nombres NetBIOS, escucha las peticiones del servidor de nombres. También permite que el servidor Samba sea encontrado por otros ordenadores de la red.
Índice De Contenidos
  1. Instalar Y Configurar Servidor Samba En Ubuntu
  2. Crear un recurso compartido Samba privado
  3. Cómo crear un recurso compartido público Samba sin autenticación
  4. Acceso a la carpeta compartida de Samba desde Windows
    1. Error de conexión
    2. Asignación de unidades en Windows
    3. Acceso a la carpeta compartida Samba en el Administrador de Archivos Nautilus en Linux
  5. Montar automáticamente el recurso compartido Samba desde la línea de comandos en Linux
  6. ¿No puedes escribir en el recurso compartido Samba?
  7. Consejo para solucionar problemas
  8. Conclusión

Instalar Y Configurar Servidor Samba En Ubuntu

Samba está incluido en la mayoría de las distribuciones de Linux. Para instalar Samba en Ubuntu, simplemente ejecuta el siguiente comando en el terminal.

sudo apt install samba samba-common-bin

La última versión estable disponible es la 4.12.0, lanzada el 03 de marzo de 2019. Para comprobar tu versión de Samba, ejecuta

smbd --version

Ejemplo de salida:

Version 4.7.6-Ubuntu

Para comprobar si el servicio Samba se está ejecutando, emite el siguiente comando.

systemctl status smbd nmbd

Para iniciar estos dos servicios, emite el siguiente comando:

sudo systemctl start smbd nmbd

Una vez iniciado, smbd estará a la escucha en los puertos TCP 139 y 445. nmbd estará a la escucha en los puertos UDP 137 y 138.

  • TCP 139: se utiliza para compartir archivos e impresoras y otras operaciones.
  • TCP 445: el puerto CIFS sin NetBIOS.
  • UDP 137: utilizado para la navegación en red NetBIOS.
  • UDP 138: utilizado para el servicio de nombres NetBIOS.

Si has habilitado el firewall UFW en Ubuntu, entonces necesitas abrir los puertos anteriores en el firewall con el siguiente comando.

sudo ufw allow samba

Crear un recurso compartido Samba privado

En esta sección, veremos cómo crear un recurso compartido Samba privado que requiere que el cliente introduzca el nombre de usuario y la contraseña para poder acceder. El archivo principal de configuración de Samba se encuentra en /etc/samba/smb.conf. Puedes editarlo en la terminal con un editor de texto de línea de comandos como nano.

sudo nano /etc/samba/smb.conf

En la sección [global], asegúrate de que el valor del grupo de trabajo es el mismo que la configuración del grupo de trabajo de los ordenadores Windows.

workgroup = WORKGROUP

Crear un recurso compartido Samba privado

Puedes encontrar la configuración en tu ordenador Windows yendo al Panel de Control > Sistema y Seguridad > Sistema.

Control > Sistema y Seguridad > Sistema

A continuación, desplázate hasta el final del archivo. (En el editor de texto nano, puedes conseguirlo pulsando CTRL+W y luego CTRL+V. ) Añade una nueva sección como la siguiente.

[Private]

comment = needs username and password to access
path = /srv/samba/private/
browseable = yes
guest ok = no
writable = yes
valid users = @samba

Explicación:

  • Privado es el nombre de la carpeta que se mostrará en la red de Windows.
  • El comentario es una descripción para la carpeta compartida.
  • El parámetro path especifica la ruta de la carpeta compartida. Yo uso /srv/samba/privado/ como ejemplo. También puede utilizar una carpeta en tu directorio personal.
  • browseable = yes: Permite a otros ordenadores de la red ver el servidor Samba y el recurso compartido Samba. Si se establece en no, los usuarios tienen que conocer el nombre del servidor Samba y luego introducir manualmente una ruta en el administrador de archivos para acceder a la carpeta compartida.
  • guest ok = no: Desactiva el acceso de invitados. En otras palabras, es necesario introducir el nombre de usuario y la contraseña en el ordenador cliente para acceder a la carpeta compartida.
  • writable = yes: Concede permiso de lectura y escritura a los clientes.
  • usuarios válidos = @samba: Sólo los usuarios del grupo samba pueden acceder a este recurso compartido de Samba.

Guarda y cierra el archivo. (Para guardar el archivo en el editor de texto nano, presiona Ctrl+O, luego presiona Enter para confirmar el nombre del archivo a escribir. Para cerrar el archivo, pulsa Ctrl+X). Ahora necesitamos crear un usuario Samba. Primero, necesitamos crear una cuenta de usuario estándar de Linux con el siguiente comando. Reemplaza el nombre de usuario con el nombre de usuario que desees.

sudo adduser username

Se te pedirá que establezcas una contraseña Unix. Después de eso, también necesitas establecer una contraseña Samba separada para el nuevo usuario con el siguiente comando:

sudo smbpasswd -a username

Crea el grupo samba.

sudo groupadd samba

Y añade este usuario al grupo samba.

sudo gpasswd -a username samba

Crea la carpeta compartida privada.

sudo mkdir -p /srv/samba/private/

El grupo samba necesita tener permiso de lectura, escritura y ejecución en la carpeta compartida. Puedes conceder estos permisos ejecutando el siguiente comando. (Si tu sistema no tiene el comando setfacl, necesitas instalar el paquete acl con sudo apt install acl).

sudo setfacl -R -m "g:samba:rwx" /srv/samba/private/

A continuación, ejecuta el siguiente comando para comprobar si hay errores sintácticos.

testparm

Ahora sólo queda reiniciar el demonio smbd y nmbd.

sudo systemctl restart smbd nmbd

Cómo crear un recurso compartido público Samba sin autenticación

Para crear un recurso compartido público sin requerir nombre de usuario y contraseña, se deben cumplir las siguientes condiciones.

  • Configurar security = user en la sección global del archivo de configuración de Samba. Aunque puedes crear un recurso compartido público con el modo de seguridad = share, este modo de seguridad está en desuso. Se sugiere encarecidamente que evite el modo share.

Lee: Cambiar El Orden De Arranque De Grub En Ubuntu / Linux Mint. Guía

  • Configurar el mapa a guest = bad user en la sección global del archivo de configuración de Samba. Esto hará que smbd utilice una cuenta de invitado para autenticar a los clientes que no tienen una cuenta registrada en el servidor Samba. Como es una cuenta de invitado, los clientes de Samba no necesitan introducir la contraseña.
  • Establecer guest ok = yes en la definición del recurso compartido para permitir el acceso de los invitados.
  • Otorgar permiso de lectura, escritura y ejecución de la carpeta pública a la cuenta nobody, que es la cuenta de invitado por defecto.

De hecho, las dos primeras condiciones ya se cumplen ya que Samba utiliza por defecto estas dos configuraciones.

A continuación, una guía paso a paso para crear un recurso compartido público. Primero, abre y edita el archivo de configuración de Samba.

sudo nano /etc/samba/smb.conf

En la sección [global], asegúrate de que el valor del grupo de trabajo coincide con la configuración del grupo de trabajo de los ordenadores Windows.

workgroup = WORKGROUP

Cómo crear un recurso compartido público Samba sin autenticación

Puedes encontrar la configuración en tu ordenador Windows yendo al Panel de Control > Sistema y Seguridad > Sistema.

Panel de Control > Sistema y Seguridad > Sistema

A continuación, desplázate hasta el final del archivo y pega las siguientes líneas.

[public]

comment = public share, no need to enter username and password
path = /srv/samba/public/
browseable = yes
writable = yes
guest ok = yes

Guarda y cierra el archivo. A continuación, crea la carpeta /srv/samba/public/.

sudo mkdir -p /srv/samba/public

A continuación, asegúrate de que la cuenta Nobody tiene permiso de lectura, escritura y ejecución en la carpeta pública ejecutando el siguiente comando. (Si tu sistema no tiene el comando setfacl, necesitas instalar el paquete acl con sudo apt install acl).

sudo setfacl -R -m "u:nobody:rwx" /srv/samba/public/

Reinicia smbd y nmbd.

sudo systemctl restart smbd nmbd

Acceso a la carpeta compartida de Samba desde Windows

En un ordenador con Windows que esté en la misma red, abre el Explorador de archivos y haz clic en Red en el panel izquierdo. Si ve el siguiente mensaje, debe hacer clic en él y activar la detección de redes y el uso compartido de archivos.

File sharing is turned off. Some network computers and devices might not be visible.

A continuación, introduce \N seguido de la dirección IP del servidor Samba en la barra de direcciones del Explorador de Archivos, de la siguiente manera \192.168.0.102. Verás una lista de recursos compartidos en el servidor Samba.

Acceso a la carpeta compartida de Samba desde Windows

A continuación, haz doble clic en la carpeta compartida. Para acceder al recurso compartido privado, debes introducir el nombre de usuario y la contraseña de Samba. No es necesario hacerlo para acceder al recurso compartido público.

Acceso a la carpeta compartida de Samba desde Windows

Una vez conectado, puedes leer, escribir y eliminar archivos en la carpeta compartida de Samba.

Error de conexión

Si obtienes el siguiente error:

You do not have permission to access \hostnameshare-name. Contact your network administrator to request access.

Puedes intentar conectarte al recurso compartido Samba desde el símbolo del sistema. Abre un símbolo del sistema y ejecuta el siguiente comando para cerrar la sesión actual de Samba.

net use \samba-server-ipshare-name /delete

A continuación, conéctate al recurso compartido Samba con el siguiente comando:

net use \samba-server-ipshare-name /user:samba-username password

Una vez que el comando anterior se haya completado con éxito, ve a la pestaña Red en el Explorador de archivos y ahora debería poder acceder al recurso compartido Samba.

Asignación de unidades en Windows

Una característica del sistema operativo Windows es la capacidad de asignar una letra de unidad (como S:) a un directorio remoto. Para asignar la letra de unidad S: al recurso compartido Samba, haz clic con el botón derecho en la carpeta compartida Samba y selecciona Asignar unidad de red. A continuación, elige una letra de unidad y haz clic en Finalizar.

Instalar Y Configurar Servidor Samba En Ubuntu

Una vez establecida la asignación de unidades, las aplicaciones pueden acceder a los archivos del recurso compartido Samba a través de la letra de unidad S:. Además, este recurso compartido Samba se montará automáticamente cuando inicies sesión en tu ordenador con Windows.

Acceso a la carpeta compartida Samba en el Administrador de Archivos Nautilus en Linux

Si estás utilizando el administrador de archivos Nautilus, haz clic en Otras Ubicaciones en el panel izquierdo. En la parte inferior, verás una opción para conectarte al servidor. Para acceder a tu recurso compartido Samba, escribe smb:// seguido de la dirección IP del servidor Samba y pulsa Enter. Por ejemplo:

  • smb://192.168.0.102

smb://192.168.0.102

Verás una lista de recursos compartidos en el servidor Samba.

recursos compartidos en el servidor Samba.

Si haces clic en la carpeta compartida privada, tendrás que introducir el nombre de usuario y la contraseña de Samba. Si haces clic en la carpeta compartida pública, entonces elige conectarse como Anónimo.

introducir el nombre de usuario y la contraseña de Samba

Montar automáticamente el recurso compartido Samba desde la línea de comandos en Linux

Nota: El montaje automático del recurso compartido Samba se realiza en clientes. Estos comandos deben ser ejecutados en un cliente Samba, si el cliente Samba ejecuta Linux. No debe hacerlo en el propio servidor Samba.

Si necesitas montar automáticamente el recurso compartido Samba en el momento del arranque, puedes utilizar la línea de comandos para montar y luego añadir una entrada en el archivo /etc/fstab. Para ello, es necesario instalar el paquete cifs-utils.

CentOS/RHEL

sudo dnf install cifs-utils

Debian/Ubuntu

sudo apt install cifs-utils

A continuación, crea un punto de montaje para el recurso compartido Samba.

sudo mkdir /mnt/samba-private

Ahora puedes utilizar el siguiente comando para montar una carpeta compartida privada.

sudo mount -t cifs -o username=your_samba_username //192.168.0.102/private /mnt/samba-private/

Te pedirá que introduzcas la contraseña de Samba. Después, se montará en el directorio /mnt/samba-private/.

Para montar automáticamente el recurso compartido Samba, edita el archivo /etc/fstab.

sudo nano /etc/fstab

Añade la siguiente línea en el archivo.

//192.168.0.102/private  /mnt/samba-private   cifs    x-systemd.automount,_netdev,credentials=/etc/samba-credential.conf,uid=1000,gid=1000,x-gvfs-show   0   0

Donde:

  • //192.168.0.102/privado: la dirección IP del servidor Samba y el nombre del recurso compartido.
  • /mnt/samba-private: punto de montaje para el recurso compartido Samba.
  • cifs: tipo de sistema de archivos
  • x-systemd.automount: Esta opción le dice a systemd que cree una unidad de automontaje para el sistema de archivos. Usamos esto porque asegura que el sistema de archivos remoto se monte sólo después de que haya acceso a la red.
  • _netdev: Especifica que el montaje requiere red.
  • credentials=: Linux debes buscar las credenciales en el archivo /etc/samba-credential.conf.
  • uid=1000,gid=1000: Por defecto el sistema de archivos montado será propiedad del usuario root. Usamos uid y gid para cambiar la propiedad del sistema de archivos. Normalmente se utiliza su propio uid y gid, que son ambos 1000 por defecto.
  • x-gvfs-show: Si estás utilizando el entorno de escritorio GNOME o sus derivados, puedes utilizar esta opción para mostrar el sistema de archivos montado en el gestor de archivos.

Guarda y cierra el archivo. A continuación, crea el archivo de credenciales.

sudo nano /etc/samba-credential.conf

Añade las siguientes líneas en el archivo.

username=your_samba_username
password=samba_password
domain=WORKGROUP

Guarda y cierra el archivo. Asegúrate de que sólo el usuario root puede leer este archivo.

sudo chmod 600 /etc/samba-credential.conf

Si ahora reinicias tu ordenador Linux, el recurso compartido Samba se montará automáticamente.

¿No puedes escribir en el recurso compartido Samba?

El montaje CIFS descrito anteriormente te permite escribir en el recurso compartido Samba. Si ves el siguiente error al crear un archivo:

Read-only file system

Comprueba que ha establecido writable = yes en el archivo de configuración de Samba. A veces, la carpeta compartida de Samba está en un disco duro externo, entonces asegúrate de montar el disco duro externo en modo de lectura-escritura en el servidor Samba. Por ejemplo, monte mi disco duro btrfs con la siguiente línea en /etc/fstab.

LABEL=5TB   /mnt/5TB   btrfs   defaults   0   0

Resulta que la opción por defecto no permite la operación de escritura. Para hacerla escribible, añade la opción rw.

LABEL=5TB   /mnt/5TB   btrfs   defaults,rw   0   0

Luego desmonta el disco duro. Necesitas usar tu propio punto de montaje.

sudo umount /mnt/5TB

Y vuelve a montarlo.

sudo mount -a

Consejo para solucionar problemas

Si tu servidor Samba no funciona como se espera, puedes comprobar los archivos de registro en el directorio /var/log/samba/. Puedes añadir la siguiente línea en la sección [global] del archivo /etc/samba/smb.conf para aumentar el nivel de registro si deseas registrar más información.

log level = 2

Conclusión

En Tutomundo.com esperamos que te haya gustado nuestro contenido y hayas aprendido Como Instalar Y Configurar Servidor Samba En Ubuntu ¡Fácil y rápido!, si tienes una duda o cualquier sugerencia no dudes en dejar un comentario.

►TAMBIÉN DEBERÍAS LEER...

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Subir

Utilizo cookies propias, de análisis y de terceros para mejorar la experiencia de navegación por mi web. Y en algunos artículos, para mostrarte publicidad relacionada con tus preferencias según el análisis de tu navegación. Pero solo es para seguir ofreciéndote contenido de calidad en el blog de manera totalmente gratuita. Puedes informarte más profundamente sobre qué cookies estoy utilizando y desactivarlas si quieres (algo que agradecería que no hicieras) Más información