Compartir archivos entre Ubuntu 20.04 y sistemas Windows con Samba
On enero 21, 2022 by adminAunque Linux ha hecho algunas incursiones en el mercado de escritorio, sus orígenes y su futuro están muy basados en los servidores. No es de extrañar, por tanto, que Ubuntu tenga la capacidad de actuar como servidor de archivos. También es muy común que los sistemas Ubuntu y Windows se utilicen juntos en entornos de red. Es un requisito común, por lo tanto, que los archivos de un sistema Ubuntu sean accesibles a los sistemas basados en Linux, UNIX y Windows a través de las conexiones de red. Del mismo modo, las carpetas e impresoras compartidas que residen en los sistemas Windows también pueden necesitar ser accesibles desde los sistemas basados en Ubuntu.
Los sistemas Windows comparten recursos como sistemas de archivos e impresoras utilizando un protocolo conocido como Server Message Block (SMB). Para que un sistema Ubuntu pueda servir dichos recursos a través de una red a un sistema Windows y viceversa debe, por tanto, soportar SMB. Esto se consigue mediante una tecnología llamada Samba. Además de proporcionar la integración entre los sistemas Linux y Windows, Samba también se puede utilizar para proporcionar el intercambio de carpetas entre los sistemas Linux (como una alternativa a NFS que fue cubierto en el capítulo anterior).
En este capítulo vamos a ver los pasos necesarios para compartir los recursos del sistema de archivos y las impresoras en un sistema Ubuntu con sistemas remotos de Windows y Linux, y para acceder a los recursos de Windows desde Ubuntu.
1.1 Acceder a los recursos de Windows desde el escritorio GNOME
Antes de entrar en más detalles sobre el uso compartido de Samba, vale la pena señalar que si todo lo que quiere hacer es acceder a las carpetas compartidas de Windows desde el escritorio GNOME de Ubuntu, entonces ya se proporciona soporte dentro de la aplicación Archivos de GNOME. La aplicación Archivos se encuentra en el tablero como se resalta en la Figura 23-1:
Figura 23-1
Una vez iniciada, seleccione la opción Otras Ubicaciones en el panel de navegación de la izquierda seguido del icono Red de Windows en el panel principal para explorar los recursos de Windows disponibles:
Figura 23-2
1.2 Samba y el cliente Samba
Samba permite compartir tanto recursos de Ubuntu con sistemas Windows como recursos de Windows con sistemas Ubuntu. Ubuntu accede a los recursos de Windows utilizando el cliente Samba. Los recursos de Ubuntu, por otro lado, se comparten con sistemas Windows instalando y configurando el servicio Samba.
1.3 Instalación de Samba en un sistema Ubuntu
La configuración por defecto utilizada durante el proceso de instalación de Ubuntu no suele instalar los paquetes necesarios de Samba. A menos que haya solicitado específicamente que se instale Samba, es poco probable que tenga Samba instalado en su sistema. Para comprobar si Samba está instalado, abra una ventana de terminal y ejecute el siguiente comando:
# apt -qq list samba-common samba smbclient
Los paquetes que falten pueden instalarse utilizando la herramienta de línea de comandos apt:
# apt install samba-common samba smbclient
1.4 Configurar el cortafuegos de Ubuntu para permitir Samba
A continuación, el cortafuegos que protege actualmente el sistema Ubuntu debe configurarse para permitir el tráfico de Samba.
Si está usando el Firewall sin complicaciones (ufw) ejecute el siguiente comando:
# ufw allow samba
Alternativamente, si está usando firewalld, ejecute el comando firewall-cmd como sigue:
# firewall-cmd --permanent --add-port={139/tcp,445/tcp}# firewall-cmd --reload
Antes de iniciar el servicio Samba es necesario realizar una serie de pasos de configuración para definir cómo aparecerá el sistema Ubuntu ante los sistemas Windows, y los recursos que se van a compartir con los clientes remotos. La mayoría de estas tareas de configuración tienen lugar dentro del archivo /etc/samba/smb. conf.
1.5 Configurar el archivo smb.conf
Samba es un sistema altamente flexible y configurable que proporciona muchas opciones diferentes para controlar cómo se comparten los recursos en las redes de Windows. Esta flexibilidad puede llevar a la sensación de que Samba es demasiado complejo para trabajar. En realidad, sin embargo, muchas de las opciones de configuración no son necesarias para la instalación típica, y la curva de aprendizaje para establecer una configuración básica es en realidad bastante corta.
Para los propósitos de este capítulo vamos a ver la unión de un sistema Ubuntu a un grupo de trabajo de Windows y la configuración de un directorio como un recurso compartido que se puede acceder por un usuario específico. Esta es una configuración conocida como servidor Samba independiente. También existen configuraciones más avanzadas, como la integración de Samba dentro de un entorno de Directorio Activo, aunque están fuera del alcance de este libro.
El primer paso para configurar Samba es editar el archivo /etc/samba/smb.conf.
1.5.1 Configuración de la sección
El archivo smb.conf está dividido en secciones. La primera sección es la sección donde se pueden especificar ajustes que se aplican a toda la configuración de Samba. Mientras que estos ajustes son globales, cada opción puede ser anulada dentro de otras secciones del archivo de configuración.
La primera tarea es definir el nombre del grupo de trabajo de Windows en el que se van a compartir los recursos de Ubuntu. Esto se controla a través de la directiva workgroup = de la sección que por defecto está configurada de la siguiente manera:
workgroup = WORKGROUP
Comienza cambiando esto por el nombre real del grupo de trabajo si es necesario.
Además de la configuración del grupo de trabajo, las demás configuraciones indican que se trata de un servidor independiente en el que los recursos compartidos estarán protegidos por contraseñas de usuario. Antes de pasar a la configuración de los recursos que se van a compartir, también hay que añadir otros parámetros a la sección como se indica a continuación:
.. netbios name = LinuxServer..
La propiedad «netbios name» especifica el nombre con el que el servidor será visible para otros sistemas de la red.
1.5.2 Configurar un recurso compartido
El siguiente paso es configurar los recursos compartidos (es decir, los recursos que serán accesibles desde otros sistemas de la red Windows). Para ello, se le da un nombre a la sección con el que se referirá cuando se comparta. Por ejemplo, si planeamos compartir el directorio /sampleshare de nuestro sistema Ubuntu, podríamos titular la sección . En esta sección es posible una variedad de opciones de configuración. Sin embargo, para los propósitos de este ejemplo, simplemente definiremos el directorio que va a ser compartido, indicaremos que el directorio es navegable y escribible y declararemos el recurso como público para que los usuarios invitados puedan acceder a él:
comment = Example Samba share path = /sampleshare browseable = Yes public = yes writable = yes
Para restringir el acceso a usuarios específicos, se puede utilizar la propiedad «usuarios válidos», por ejemplo:
valid users = demo, bobyoung, marcewing
1.5.3 Eliminación de recursos compartidos innecesarios
El archivo smb.conf está preconfigurado con secciones para compartir impresoras y las carpetas personales de los usuarios del sistema. Si estos recursos no necesitan ser compartidos, las secciones correspondientes pueden ser comentadas para que sean ignoradas por Samba. En el siguiente ejemplo, la sección ha sido comentada:
..## comment = Home Directories# valid users = %S, %D%w%S# browseable = No# read only = No# inherit acls = Yes..
1.6 Creación de un Usuario Samba
Cualquier usuario que requiera acceso a un recurso compartido de Samba debe ser configurado como Usuario Samba y asignarle una contraseña. Esta tarea se logra utilizando la herramienta de línea de comandos smbpasswd. Consideremos, por ejemplo, que se requiere un usuario llamado demo para poder acceder al directorio /sampleshare de nuestro sistema Ubuntu desde un sistema Windows. Para cumplir con este requisito debemos añadir a demo como usuario de Samba de la siguiente manera:
# smbpasswd -a demoNew SMB password:Retype new SMB password:Added user demo.
Ahora que hemos completado la configuración de un servidor Samba muy básico, es el momento de probar nuestro archivo de configuración y luego iniciar los servicios de Samba.
1.7 Probando el archivo smb.conf
La configuración en el archivo smb.conf pueden comprobarse en busca de errores utilizando la herramienta de línea de comandos testparm de la siguiente manera:
# testparmLoad smb config files from /etc/samba/smb.confrlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)WARNING: The "syslog" option is deprecatedProcessing section ""Processing section ""Processing section ""Loaded services file OK.Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parametersdns proxy = Nolog file = /var/log/samba/log.%mmap to guest = Bad Usermax log size = 1000netbios name = LINUXSERVERobey pam restrictions = Yespam password change = Yespanic action = /usr/share/samba/panic-action %dpasswd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .passwd program = /usr/bin/passwd %usecurity = USERserver role = standalone serverserver string = %h server (Samba, Ubuntu)syslog = 0unix password sync = Yesusershare allow guests = Yeswins support = Yesidmap config * : backend = tdb browseable = Nocomment = All Printerscreate mask = 0700path = /var/spool/sambaprintable = Yes comment = Printer Driverspath = /var/lib/samba/printers comment = Example Samba shareguest ok = Yespath = /sampleshareread only = No
1.8 Iniciar los servicios de nombres Samba y NetBIOS
Para que un servidor de Ubuntu funcione dentro de una red de Windows deben iniciarse los servicios Samba (SMB) y NetBIOS nameservice (NMB). Opcionalmente, habilite también los servicios para que se inicien cada vez que el sistema arranque:
# systemctl enable smbd# systemctl start smbd# systemctl enable nmbd# systemctl start nmbd
Antes de intentar conectarse desde un sistema Windows, utilice la utilidad smbclient para verificar que el recurso compartido está configurado:
# smbclient -U demo -L localhost Enter WORKGROUP\demo's password: Sharename Type Comment--------- ---- -------print$ Disk Printer Driverssampleshare Disk Example Samba shareIPC$ IPC IPC Service (demo-server2 server (Samba, Ubuntu))Officejet_Pro_8600_C7C718_ Printer Officejet_6600_971B9B_ Printer Reconnecting with SMB1 for workgroup listing. Server Comment--------- ------- Workgroup Master--------- -------WORKGROUP LINUXSERVER
1.9 Acceso a los recursos compartidos de Samba
Ahora que los recursos de Samba están configurados y los servicios están en funcionamiento, es el momento de acceder al recurso compartido desde un sistema Windows. En un sistema Windows adecuado en el mismo grupo de trabajo que el sistema Ubuntu, abra el Explorador de Windows y navegue hasta el panel de Red. En este punto, el explorador debería buscar en la red y listar cualquier sistema que utilice el protocolo SMB que encuentre. La siguiente figura ilustra un sistema Ubuntu llamado LINUXSERVER localizado mediante el Explorador de Windows en un sistema Windows 10:
Figura 23-3
Al hacer doble clic en el host LINUXSERVER se solicitará el nombre y la contraseña de un usuario con privilegios de acceso. En este caso es la cuenta demo que configuramos con la herramienta smbpasswd:
Figura 23-4
Al introducir el nombre de usuario y la contraseña aparecerán en la ventana del explorador los recursos compartidos configurados para ese usuario, incluyendo el recurso /sampleshare previamente configurado:
Figura 23-5
Al hacer doble clic en el recurso compartido /sampleshare aparecerá un listado de los archivos y directorios que contiene.
Si no puede ver el sistema Linux o tiene problemas para acceder a la carpeta compartida, intente asignar el recurso compartido Samba a una unidad local de Windows de la siguiente manera:
- Abra el Explorador de archivos de Windows, haga clic con el botón derecho del ratón en la entrada Red del panel de la izquierda y seleccione Asignar unidad de red… en el menú resultante.
- Desde el cuadro de diálogo Asignar unidad de red, seleccione una letra de unidad antes de introducir la ruta a la carpeta compartida. Por ejemplo:
\LinuxServer\sampleshare
Active la casilla de verificación junto a Conectar utilizando credenciales diferentes. Si no desea que la unidad se mapee cada vez que inicie sesión en el sistema Windows, desactive la casilla correspondiente:
Figura 23-6
Con la configuración introducida, haga clic en el botón Finalizar para mapear la unidad, introduciendo el nombre de usuario y la contraseña del usuario Samba configurado anteriormente en el capítulo cuando se le solicite. Tras un breve retardo, el contenido del recurso compartido Samba aparecerá en una nueva ventana del Explorador de archivos.
1.10 Acceso a recursos compartidos de Windows desde Ubuntu
Como se ha mencionado anteriormente, Samba es una vía de doble sentido, que permite no sólo que los sistemas Windows accedan a los archivos e impresoras alojados en un sistema Ubuntu, sino que también permite que el sistema Ubuntu acceda a los recursos compartidos de los sistemas Windows. Esto se consigue utilizando el paquete smbclient que se instaló al principio de este capítulo. Si no está instalado actualmente, instálelo desde una ventana de terminal de la siguiente manera:
# apt install smbclient
Se puede acceder a los recursos compartidos en un sistema Windows desde el escritorio de Ubuntu utilizando la aplicación Archivos, o desde la línea de comandos utilizando las herramientas smbclient y mount. Los pasos en esta sección asumen que la configuración de compartición de red apropiada ha sido habilitada en el sistema Windows.
Para acceder a cualquier recurso compartido en un sistema Windows usando el escritorio GNOME, comience lanzando la aplicación Archivos y seleccionando la opción Otras Ubicaciones. Esto mostrará la pantalla que se muestra en la Figura 23-7 a continuación, incluyendo un icono para la Red Windows (si se detecta una):
Figura 23-7
Seleccionando la opción Red Windows se mostrarán los sistemas Windows detectados en la red y se permitirá el acceso a cualquier recurso compartido.
Figura 23-8
Alternativamente, se puede utilizar la opción Conectar al servidor para conectarse a un sistema específico. Tenga en cuenta que el nombre o la dirección IP del sistema remoto debe llevar el prefijo smb:// y puede ir seguido de la ruta a un recurso compartido específico, por ejemplo:
smb://WinServer10/Documents
Deja una respuesta