GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Instalar y configurar el servidor Samba en Ubuntu para compartir archivos

En este tutorial, vamos a aprender cómo instalar y configurar un servidor Samba en Ubuntu para compartir archivos en la red local. Samba es una implementación de protocolo SMB/CIFS gratuita y de código abierto para Unix y Linux que permite compartir archivos e impresoras entre máquinas Unix/Linux, Windows y macOS en una red de área local.

Samba generalmente se instala y ejecuta en Linux. Comprende varios programas que tienen propósitos diferentes pero relacionados, los dos más importantes son:

  • smbd :proporciona servicio SMB/CIFS (uso compartido e impresión de archivos), también puede actuar como un controlador de dominio de Windows.
  • nmbd :este daemon proporciona el servicio de nombres NetBIOS, escucha las solicitudes del servidor de nombres. También permite que otras computadoras en la red encuentren el servidor Samba.

Cómo instalar el servidor Samba en Ubuntu

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

sudo apt install samba samba-common-bin

La última versión estable disponible es 4.12.0, lanzada el 3 de marzo de 2019. Para verificar su versión de Samba, ejecute

smbd --version

Salida de muestra:

Version 4.7.6-Ubuntu

Para verificar si el servicio Samba se está ejecutando, emita el siguiente comando.

systemctl status smbd nmbd

Para iniciar estos dos servicios, emita el siguiente comando:

sudo systemctl start smbd nmbd

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

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

Si ha habilitado el firewall UFW en Ubuntu, debe abrir los puertos anteriores en el firewall con el siguiente comando.

sudo ufw allow samba

Crear un recurso compartido privado de Samba

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

sudo nano /etc/samba/smb.conf

En el [global] sección, asegúrese de que el valor de workgroup es lo mismo con la configuración del grupo de trabajo de las computadoras con Windows.

workgroup = WORKGROUP

Puede encontrar la configuración en su computadora con Windows yendo a Control Panel> System and Security> System .

Luego, desplácese hacia abajo hasta la parte inferior del archivo. (En el editor de texto nano, puede lograrlo presionando CTRL+W luego CTRL+V . ) Agregue 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:

  • Private es el nombre de la carpeta que se mostrará en la red de Windows.
  • El comentario es una descripción de la carpeta compartida.
  • El parámetro ruta especifica la ruta a la carpeta compartida. Uso /srv/samba/private/ como ejemplo. También puede usar una carpeta en su directorio de inicio.
  • browseable = yes :permita que otras computadoras en la red vean el servidor Samba y el recurso compartido Samba. Si se establece en no, los usuarios deben conocer el nombre del servidor Samba y luego ingresar manualmente una ruta en el administrador de archivos para acceder a la carpeta compartida.
  • guest ok = no :deshabilitar el acceso de invitados. En otras palabras, debe ingresar el nombre de usuario y la contraseña en la computadora del cliente para acceder a la carpeta compartida.
  • writable = yes :Otorga permisos de lectura y escritura a los clientes.
  • valid users = @samba :Solo los usuarios del grupo de samba pueden acceder a este recurso compartido de Samba.

Guarde y cierre el archivo. (Para guardar el archivo en el editor de texto nano, presione Ctrl+O , luego presione Entrar para confirmar el nombre del archivo para escribir. Para cerrar el archivo, presione Ctrl+X .) Ahora necesitamos crear un usuario de Samba. Primero, necesitamos crear una cuenta de usuario estándar de Linux con el siguiente comando. Reemplazar username con su nombre de usuario deseado.

sudo adduser username

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

sudo smbpasswd -a username

Crea el grupo de samba.

sudo groupadd samba

Y agregue este usuario al grupo de samba.

sudo gpasswd -a username samba

Cree la carpeta compartida privada.

sudo mkdir -p /srv/samba/private/

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

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

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

testparm

Ahora todo lo que queda por hacer es reiniciar smbd y nmbd demonio.

sudo systemctl restart smbd nmbd

Cómo crear un recurso compartido público de 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.

  • Establecer security = user en la sección global del archivo de configuración de Samba. Aunque puede crear un recurso compartido público con security = share modo, pero este modo de seguridad está en desuso. Se recomienda encarecidamente que evite share modo.
  • Establecer map to guest = bad user en la sección global del archivo de configuración de Samba. Esto hará que smbd para usar una cuenta de invitado para autenticar a los clientes que no tienen una cuenta registrada en el servidor Samba. Dado que es una cuenta de invitado, los clientes de Samba no necesitan ingresar la contraseña.
  • Establecer guest ok = yes en la definición de recurso compartido para permitir el acceso de invitados.
  • Otorgar permiso de lectura, escritura y ejecución de la carpeta pública a nobody cuenta, que es la cuenta de invitado predeterminada.

De hecho, las dos primeras condiciones ya se cumplen, ya que Samba usa estas dos configuraciones de forma predeterminada.

Aquí hay una guía paso a paso para crear un recurso compartido público. Primero, abra y edite el archivo de configuración de Samba.

sudo nano /etc/samba/smb.conf

En el [global] sección, asegúrese de que el valor de workgroup es lo mismo con la configuración del grupo de trabajo de las computadoras con Windows.

workgroup = WORKGROUP

Puede encontrar la configuración en su computadora con Windows yendo a Control Panel> System and Security> System .

Luego, desplácese hacia abajo hasta la parte inferior del archivo y pegue 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

Guarde y cierre el archivo. A continuación, cree el /srv/samba/public/ carpeta.

sudo mkdir -p /srv/samba/public

Luego asegúrese de que nobody cuenta tiene permiso de lectura, escritura y ejecución en la carpeta pública ejecutando el siguiente comando. (Si su sistema no tiene el setfacl comando, necesita instalar el acl paquete con sudo apt install acl .)

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

Reinicie smbd y nmbd.

sudo systemctl restart smbd nmbd

Acceso a la carpeta compartida de Samba desde Windows

En una computadora con Windows que esté en la misma red, abra el Explorador de archivos y haga clic en Network en el panel izquierdo. Si ve el siguiente mensaje, debe hacer clic en el mensaje 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, ingrese \\ seguido de la dirección IP del servidor Samba en la barra de direcciones del Explorador de archivos, así:\\192.168.0.102 . Verá una lista de recursos compartidos en el servidor Samba.

Luego haga doble clic en la carpeta compartida. Para acceder al recurso compartido privado, debe ingresar el nombre de usuario y la contraseña de samba. No es necesario que lo haga para acceder al recurso compartido público.

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

Error de conexión

Si recibe el siguiente error:

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

Puede intentar conectarse al recurso compartido de Samba desde el símbolo del sistema. Abra un símbolo del sistema, luego ejecute el siguiente comando para cerrar la sesión actual de Samba.

net use \\samba-server-ip\share-name /delete

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

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

Una vez que el comando anterior se completó con éxito, vaya a la pestaña Red en el Explorador de archivos y ahora debería poder acceder al recurso compartido de 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 de Samba, haga clic con el botón derecho en la carpeta compartida de Samba y seleccione Asignar unidad de red . Luego elija una letra de unidad y haga clic en Finalizar.

Una vez que se establece la asignación de unidades, las aplicaciones pueden acceder a los archivos en el recurso compartido de Samba a través de la letra de unidad S: . Y este recurso compartido de Samba se montará automáticamente cuando inicie sesión en su computadora con Windows.

Acceso a la carpeta compartida de Samba en Nautilus File Manager en Linux

Si está utilizando el administrador de archivos Nautilus, haga clic en Other Locations en el panel izquierdo. En la parte inferior, verá una opción para conectarse al servidor . Para acceder a su recurso compartido de Samba, escriba smb:// seguido de la dirección IP del servidor Samba y presione Enter. Por ejemplo:

  • smb://192.168.0.102

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

Si hace clic en la carpeta compartida privada, deberá ingresar el nombre de usuario y la contraseña de Samba. Si hace clic en la carpeta pública compartida, elija conectarse como anónimo.

Si ve el siguiente mensaje de error,

failed to retrieve share list from server

Puede intentar solucionar este error montando el recurso compartido de Samba desde la línea de comandos, que se analiza a continuación.

Montar automáticamente Samba Share desde la línea de comandos en Linux

Nota :Montar automáticamente el Samba share se hace en los clientes. Estos comandos deben ejecutarse en un cliente Samba, si el cliente Samba ejecuta Linux. No debe hacerlo en el propio servidor Samba.

Si necesita montar automáticamente el recurso compartido de Samba en el momento del arranque, puede usar la línea de comando para montar y luego agregar una entrada en /etc/fstab expediente. Para hacerlo, debe instalar cifs-utils paquete.

CentOS/RHEL

sudo dnf install cifs-utils

Debian/Ubuntu

sudo apt install cifs-utils

Luego cree un punto de montaje para el recurso compartido de Samba.

sudo mkdir /mnt/samba-private

Ahora puede usar 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/

Le pedirá que ingrese la contraseña de Samba. Después de eso, se montará en /mnt/samba-private/ directorio.

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

sudo nano /etc/fstab

Agregue 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 compartido.
  • /mnt/samba-privado :punto de montaje para el recurso compartido de Samba.
  • cifs :tipo de sistema de archivos
  • x-systemd.montaje automático :esta opción le dice a systemd que cree una unidad de montaje automático para el sistema de archivos. Usamos esto porque garantiza que el sistema de archivos remoto se monte solo después de que haya acceso a la red.
  • _netdev :Esto especifica que el montaje requiere red.
  • credenciales= :Linux debe buscar las credenciales en /etc/samba-credential.conf archivo.
  • uid=1000,gid=1000 :De forma predeterminada, el sistema de archivos montado sería propiedad del usuario raíz. Usamos uid y gid para cambiar la propiedad del sistema de archivos. Normalmente usas tu propio uid y gid , que son 1000 por defecto.
  • x-gvfs-espectáculo :si está utilizando el entorno de escritorio GNOME o sus derivados, puede usar esta opción para mostrar el sistema de archivos montado en el administrador de archivos.

Guarde y cierre el archivo. Luego cree el archivo de credenciales.

sudo nano /etc/samba-credential.conf

Agregue las siguientes líneas en el archivo.

username=your_samba_username
password=samba_password
domain=WORKGROUP

Guarde y cierre el archivo. Asegúrese de que solo el usuario raíz pueda leer este archivo.

sudo chmod 600 /etc/samba-credential.conf

Si reinicia su computadora Linux ahora, el recurso compartido de Samba se montará automáticamente. También puede ejecutar el siguiente comando para montar el recurso compartido de Samba sin reiniciar.

sudo mount -a

Si ve el error de permiso denegado y puede encontrar la siguiente línea ejecutando sudo dmesg mando,

VFS: cifs_mount failed w/return code = -13

probablemente se deba a que tiene un error tipográfico en /etc/samba-credential archivo.

¿No puede escribir en Samba Share?

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

Read-only file system

Comprueba que configuraste writable = yes en el archivo de configuración de Samba. A veces, la carpeta compartida de Samba está en un disco duro externo, luego asegúrese de montar el disco duro externo en modo de lectura y escritura en el servidor Samba. Por ejemplo, monté mi btrfs disco duro con la siguiente línea en /etc/fstab.

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

Resulta que el defaults La opción no permite la operación de escritura. Para que se pueda escribir, agregue rw opción.

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

Luego desmonte el disco duro. Necesita usar su propio punto de montaje.

sudo umount /mnt/5TB

Y montarlo de nuevo.

sudo mount -a

Consejo para solucionar problemas

Si su servidor Samba no funciona como se esperaba, puede consultar los archivos de registro en /var/log/samba/ directorio. Puede agregar la siguiente línea en el [global] sección de /etc/samba/smb.conf archivo para aumentar el nivel de registro si desea registrar más información.

log level = 2

Ubuntu
  1. Cómo instalar y configurar un servidor NFS en Ubuntu 20.04

  2. Cómo instalar y configurar VNC en Ubuntu 20.04

  3. Cómo instalar y configurar el servidor DHCP en Ubuntu 20.04

  4. Cómo instalar y configurar el servidor Redis en Ubuntu

  5. ¿Cómo instalar y configurar samba en Ubuntu linux?

Cómo instalar y configurar el servidor LAMP en Ubuntu

Cómo instalar y configurar el servidor OpenLDAP en Ubuntu 16.04

Cómo instalar y configurar VNC en Ubuntu Server 20.04

Cómo instalar y configurar el uso compartido de archivos de Samba en Ubuntu 20.04

Instalar y configurar Virtualmin en el servidor Ubuntu 20.04 / Debian 10

Cómo instalar y configurar Samba en Ubuntu 20.04