En esta ocasión vamos a ver cómo instalar Samba en Ubuntu 18.04 LTS Bionic Beaver paso a paso, una de las mejores formas de compartir recursos entre sistemas muy distintos, como Windows, Linux o incluso Android, ya que es un protocolo ampliamente implementado en multitud de sistemas y dispositivos.
Contenido
Antes de instalar Samba en Ubuntu 18.04 LTS Bionic Beaver
Para poder seguir esta guía de instalación y configuración de Samba en Ubuntu 18.04 LTS Bionic Beaver necesitarás partir de unos requisitos mínimos:
- Un sistema Ubuntu 18.04 LTS Bionic Beaver actualizado.
- Acceso a consola con un usuario con permisos de sudo.
- Conexión a Internet.
Si estás leyendo este tutorial es porque seguramente ya cumples los requerimientos, así que vamos a abrir una terminal y a teclear algunos comandos.
Cómo instalar Samba en Ubuntu 18.04 LTS
Para instalar Samba en Ubuntu 18.04 LTS Bionic Beaver usaremos paquetes de la propia distribución, así que el primer paso será actualizar la información de los repositorios de Ubuntu 18.04:
~$ sudo apt update
A continuación ya podemos instalar el paquete samba con apt:
~$ sudo apt -y install samba
Los dos nuevos servicios que constituyen Samba se crean en nuestro sistema Ubuntu 18.04, smbd.service y nmbd.service, también referenciables por sus nombres cortos, smbd y nmbd.
El servicio smbd se encarga de los recursos compartidos, acceso de usuarios, etc. mientras que el servicio nmbd se encargará de los nombres de red.
Ambos servicios están activados para arrancar con el sistema y quedan en ejecución tras la instalación, como podemos comprobar com systemctl status:
~$ systemctl status smbd nmbd ● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-08-14 16:05:30 CEST; 8min ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 2225 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 525) CGroup: /system.slice/smbd.service ├─2225 /usr/sbin/smbd --foreground --no-process-group ├─2227 /usr/sbin/smbd --foreground --no-process-group ├─2228 /usr/sbin/smbd --foreground --no-process-group └─2229 /usr/sbin/smbd --foreground --no-process-group ............... ubuntu64 systemd[1]: Starting Samba SMB Daemon... ............... ubuntu64 systemd[1]: Started Samba SMB Daemon. ● nmbd.service - Samba NMB Daemon Loaded: loaded (/lib/systemd/system/nmbd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-08-14 16:05:33 CEST; 8min ago Docs: man:nmbd(8) man:samba(7) man:smb.conf(5) Main PID: 2273 (nmbd) Status: "nmbd: ready to serve connections..." Tasks: 1 (limit: 525) CGroup: /system.slice/nmbd.service └─2273 /usr/sbin/nmbd --foreground --no-process-group ............... ubuntu64 systemd[1]: Starting Samba NMB Daemon... ............... ubuntu64 systemd[1]: Started Samba NMB Daemon.
De hecho nuestra máquina Ubuntu 18.04 ya es visible para el resto de equipos de la red local que sean capaces de comunicarse con Samba:
En otros sistemas los equipos de red se pueden mostrar agrupados en los distintos grupos de trabajo detectados:
Cómo configurar Samba en Ubuntu 18.04 LTS
Para configurar Samba en Ubuntu 18.04 LTS Bionic Beaver debemos tener en cuenta que la configuración se guarda en la ruta /etc/samba/, siendo el archivo de configuración principal smb.conf.
Cómo cambiar el nombre de la máquina
Por defecto Samba utilizará el hostname de nuestra máquina Ubuntu 18.04 como nombre de red, pero podrías cambiarlo para Samba sin modificarlo en Ubuntu.
Para ello editaremos el archivo smb.conf:
~$ sudo nano /etc/samba/smb.conf
Incluiremos la directiva netbios name dentro de la sección [global]:
netbios name = Ubuntu1804
Cómo cambiar el grupo de trabajo
Si queremos que nuestro servidor Ubuntu 18.04 aparezca en el mismo grupo de trabajo que el resto de máquinas de la red, Buscaremos la directiva workgroup:
... # Change this to the workgroup/NT-domain name your Samba server will part of workgroup = WORKGROUP ...
Y cambiaremos su valor por el correspondiente al grupo que deseamos configurar:
workgroup = SEVEN_KINGDOMS
Cómo cambiar la descripción del equipo
Cuando examinamos los equipos de red, según el examinador de equipos de la red que se trate, puede mostrarlos con o sin descripción, con la descripción primero y el nombre de equipo después o viceversa.
Para controlar qué aparece en esa descripción, buscaremos la directiva server string:
server string = %h server (Samba, Ubuntu)
La configuración por defecto muestra el hostname (variable %h) seguida de una pequeña descripción. Puedes cambiar el valor de toda la descripción, e incluso anularla borrando el valor asignado:
server string =
De esta forma sólo se muestra el nombre del equipo por defecto o el configurado en la directiva netbios name.
Activar los cambios en grupos, nombres y descripciones
Para activar las configuraciones anterioes, una vez guardados los cambios, habrá que reiniciar el servicio nmbd:
~$ sudo systemctl restart nmbd.service
Cómo acceder a los directorios personales
Para que los usuarios de Ubuntu 18.04 puedan acceder a sus directorios personales desde otros dispositivos o sistemas tienen que compartir sus directorios mediante Samba y haber añadido sus credenciales al sistema de acceso de Samba.
Mediante el comando smbpasswd añadiremos a los usuarios que queramos que accedan mediante Samba:
~$ sudo smbpasswd -a usuario New SMB password: Retype new SMB password: Added user usuario.
Sólo mediante sudo se puede añadir usuarios, pero sin sudo smbpasswd sirve para cambiar la contraseña de Samba del usuario actual.
Impedir el acceso de anónimos o invitados
Para evitar que usuarios que no tienen cuenta en el sistema Ubuntu y no estén dados de alta en la base de cuentas de Samba, cambiaremos la directiva map to guest:
... # This option controls how unsuccessful authentication attempts are mapped # to anonymous connections map to guest = bad user ...
Cambiaremos el valor a never:
map to guest = never
Habrá que recargar la configuración del servicio smbd:
~$ sudo systemctl reload smbd.service
Ahora, al intentar examinar una máquina de red se nos pedirán credenciales de acceso:
Algunos sistemas antiguos (por ejemplo, Windows XP) no pueden acceder por emplear versiones anteriores del sistema de autenticación. Si quieres poder acceder desde tales sistemas necesitarás añadir esta directiva:
# Acceso desde sistemas antiguos ntlm auth = yes
Y habrá que recargar la configuración del servicio smbd.
Aunque el acceso es posible, los directorios personales no se muestran por defecto, y como tampoco hemos definido otros recursos compartidos si conectamos desde un entorno gráfico nos encontraremos con una ventana vacía.
Vamos a buscar la sección [homes] en smb.conf:
;[homes] ; comment = Home Directories ; browseable = no
Se intuye que está completamente desactivada, por lo que debemos activar esta sección eliminando el carácter ; a principio de línea:
[homes] ; comment = Home Directories ; browseable = no
Puedes activar el comentario y cambiar su valor si lo necesitas.
Los cambios entran en efecto al recargar el servicio smbd.
Por defecto el contenido de los archivos del directorio personal se ofrece en modo lectura. Esto es controlado por la directiva read only:
... # By default, the home directories are exported read-only. Change the # next parameter to 'no' if you want to be able to write to them. ; read only = yes ...
Si quieres poder crear o modificar archivos, descomenta la directiva y cambia su valor a no:
read only = no
Puedes controlar los permisos con los que se crean los archivos mediante las directivas create mask y directory mask:
# File creation mask is set to 0700 for security reasons. If you want to # create files with group=rw permissions, set next parameter to 0775. ; create mask = 0700 # Directory creation mask is set to 0700 for security reasons. If you want to # create dirs. with group=rw permissions, set next parameter to 0775. ; directory mask = 0700
Están desactivadas, así que si no te interesan los valores por defecto debes descomentarlas y darles el valor que se adapte a tus intereses.
Cómo crear nuevos recursos compartidos
Para crear un nuevo recurso compartido añadiremos una nueva sección al final del archivo smb.conf, con el nombre que queremos darle al recurso y una directiva path con la ruta de la carpeta a compartir en la máquina Ubuntu. Por ejemplo, podríamos añadir un recurso archivos:
[archivos] path = /var/samba/archivos
Si la ruta que has elegido no existe, debes crearla:
~$ sudo mkdir -p /var/samba/archivos
Recargando la configuración del servicio smbd el nuevo recurso está disponible.
La estrategia a la hora de crear recursos compartidos es qué usuarios pueden acceder y qué pueden hacer. Un recurso como el que acabamos de crear puede ser accedido por todo el mundo, ya que tiene permisos de lectura y ejecución para todos.
Si quisiéramos que sólo pudieran acceder determinados usuarios, podríamos crear un grupo en Ubuntu 18.04 añadir los usuarios correspondientes al mismo (usuarios que también deben estar dados de alta en Samba con smbpasswd) y utilizar la directiva valid users.
Por ejemplo, creamos el grupo archivos en Ubuntu 18.04:
~$ sudo addgroup archivos
Añadimos usuarios al grupo:
~$ sudo adduser usuario archivos ...
Y en smb.conf aplicamos valid users al recurso:
[archivos] path = /var/samba/archivos valid users = @archivos
Si quisiéramos que estos usuarios pudieran crear y modificar archivos en el recurso, bastaría con cambiar el grupo del directorio en Ubuntu y dar permisos de escritura:
~$ sudo chown :archivos /var/samba/archivos/ ~$ sudo chmod g+w /var/samba/archivos/
En cuanto a Samba, en la configuración del recurso añadiremos una directiva read only:
read only = no
Podrías tener un grupo con otros usuarios sin permisos de escritura sobre el recurso. Basta crear el grupo en Ubuntu y añadir los usuarios tanto al grupo como a Samba, añadiéndolo a valid users:
valid users = @archivos @usuarios
Y podrán acceder y copiar o abrir archivos, pero no crear ni modificar, ya que aunque Samba deja escribir en el recurso, Ubuntu lo impide por los permisos no coincidentes.
El comando testparm
Si en alguna ocasión algo no funciona como esperabas después de hacer cambios de configuración, Samba pone a tu disposición el comando testparm, que examina la configuración y la valida, volcando la configuración de los recursos compartidos que encuentre en smb.conf.
Si, por ejemplo, has tecleado mal una directiva, testparm la ignora y no la muestra en el volcado.
Archivos de registro (logs) de Samba en Ubuntu 18.04
Los archivos de registro de Samba en Ubuntu 18.04 se guardan bajo la ruta /var/log/samba/. Cada servicio tiene su archivo de registro por separado.
Además, también se guardan registros de las conexiones desde otras máquinas.
Estos registros son muy útiles a la hora de encontrar fallos en la configuración de los recursos compartidos.
Conclusión
Ahora que sabes cómo instalar y configurar Samba en Ubuntu 18.04 ya puedes compartir archivos en tu red local, entre máquinas con distintos sistemas operativos. Podrás acceder a tus archivos personales, pero también crear una estructura de carpetas y archivos compartidos que se ajusten a tus necesidades.
Si tienes dudas, preguntas, sugerencias, etc. puedes dejar un comentario.
¡Apoya este sitio!
Ah, y si esta pequeña guía de Samba en Ubuntu 18.04 LTS Bionic Beaver te ha ahorrado algunos dolores de cabeza, siempre puedes agradecérnoslo con una mínima contribución al manenimiento de este sitio.
Puedes ayudarnos dejando una propina a partir de 1 $ desde PayPal:
O, si te sientes especialmente generoso, puedes invitarnos a un café:
¡Gracias!