Cómo instalar y configurar Samba en CentOS 7

Samba es una reimplementación libre y de código abierto del protocolo de intercambio de archivos de red SMB/CIFS que permite a los usuarios finales acceder a archivos, impresoras y otros recursos compartidos.

En este tutorial, mostraremos cómo instalar Samba en CentOS 7 y configurarlo como un servidor independiente para proporcionar el intercambio de archivos a través de diferentes sistemas operativos a través de una red.

Crearemos los siguientes recursos compartidos y usuarios de Samba.

Users:

  • sadmin – Un usuario administrativo con acceso de lectura y escritura a todos los recursos compartidos.
  • josh – Un usuario normal con su propio recurso compartido de archivos privado.

Shares:

  • users – Este recurso compartido será accesible con permisos de lectura/escritura por todos los usuarios.
  • josh – Este recurso compartido será accesible con permisos de lectura/escritura sólo por los usuarios josh y sadmin.

Los archivos compartidos serán accesibles desde todos los dispositivos de su red. Más adelante en el tutorial, también proporcionaremos instrucciones detalladas sobre cómo conectarse al servidor Samba desde clientes Linux, Windows y macOS.

Requisitos previos #

Antes de comenzar, asegúrese de que ha iniciado sesión en su sistema CentOS 7 como usuario con privilegios sudo.

Instalación de Samba en CentOS #

Samba está disponible en los repositorios estándar de CentOS. Para instalarlo en su sistema CentOS ejecute el siguiente comando:

sudo yum install samba samba-client

Una vez completada la instalación, inicie los servicios de Samba y habilítelos para que se inicien automáticamente al arrancar el sistema:

sudo systemctl start smb.servicesudo systemctl start nmb.service
sudo systemctl enable smb.servicesudo systemctl enable nmb.service

El servicio smbd proporciona servicios de compartición e impresión de archivos y escucha en los puertos TCP 139 y 445. El servicio nmbd proporciona servicios de nomenclatura NetBIOS sobre IP a los clientes y escucha en el puerto UDP 137.

Configuración del cortafuegos #

Ahora que Samba está instalado y funcionando en su máquina CentOS, tendrá que configurar su cortafuegos y abrir los puertos necesarios. Para ello, ejecuta los siguientes comandos:

firewall-cmd --permanent --zone=public --add-service=sambafirewall-cmd --zone=public --add-service=samba

Creación de usuarios y estructura de directorios de Samba #

Para facilitar el mantenimiento y la flexibilidad, en lugar de utilizar los directorios de inicio estándar (/home/user) todos los directorios y datos de Samba se ubicarán en el directorio /samba.

Comienza creando el directorio /samba:

sudo mkdir /samba

Crea un nuevo grupo llamado sambashare. Más tarde añadiremos todos los usuarios de Samba a este grupo.

sudo groupadd sambashare 

Configura la propiedad del grupo del directorio /samba a sambashare:

sudo chgrp sambashare /samba

Samba utiliza el sistema de permisos de usuarios y grupos de Linux, pero tiene su propio mecanismo de autenticación separado de la autenticación estándar de Linux. Crearemos los usuarios utilizando la herramienta estándar de Linux useradd y luego estableceremos la contraseña del usuario con la utilidad smbpasswd.

Como mencionamos en la introducción, crearemos un usuario normal que tendrá acceso a su recurso compartido de archivos privado y una cuenta administrativa con acceso de lectura y escritura a todos los recursos compartidos del servidor Samba.

Creación de usuarios Samba #

Para crear un nuevo usuario llamado josh, utilice el siguiente comando:

sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh

Las opciones useradd tienen los siguientes significados:

Cree el directorio principal del usuario y establezca la propiedad del directorio al usuario josh y al grupo sambashare:

sudo mkdir /samba/joshsudo chown josh:sambashare /samba/josh

El siguiente comando añadirá el bit setgid al directorio /samba/josh para que los archivos recién creados en este directorio hereden el grupo del directorio padre. De esta manera, no importa qué usuario cree un nuevo archivo, el archivo tendrá el grupo-propietario de sambashare. Por ejemplo, si no establece los permisos del directorio a 2770 y el usuario sadmin crea un nuevo archivo, el usuario josh no podrá leer/escribir en este archivo.

sudo chmod 2770 /samba/josh

Añada la cuenta de usuario josh a la base de datos de Samba estableciendo la contraseña del usuario:

sudo smbpasswd -a josh

Se le pedirá que introduzca y confirme la contraseña del usuario.

New SMB password:Retype new SMB password:Added user josh.

Una vez establecida la contraseña, habilite la cuenta Samba escribiendo:

sudo smbpasswd -e josh
Enabled user josh.

Para crear otro usuario repita el mismo proceso que al crear el usuario josh.

A continuación, vamos a crear un usuario y un grupo sadmin. Todos los miembros de este grupo tendrán permisos administrativos. Más tarde, si desea otorgar permisos administrativos a otro usuario, simplemente agregue ese usuario al grupo sadmin.

Cree el usuario administrativo escribiendo:

sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

El comando anterior también creará un grupo sadmin y agregará el usuario a ambos grupos sadmin y sambashare.

Establezca una contraseña y habilite el usuario:

sudo smbpasswd -a sadminsudo smbpasswd -e sadmin

A continuación, cree el directorio compartido Users:

sudo mkdir /samba/users

Establezca la propiedad del directorio para el usuario sadmin y el grupo sambashare:

sudo chown sadmin:sambashare /samba/users

Este directorio será accesible para todos los usuarios autenticados. El siguiente comando configura el acceso de escritura/lectura para los miembros del grupo sambashare en el directorio /samba/users:

sudo chmod 2770 /samba/users

Configuración de los recursos compartidos de Samba #

Abra el archivo de configuración de Samba y añada las secciones:

sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf

Las opciones tienen los siguientes significados:

  • y – Los nombres de los recursos compartidos que utilizará al iniciar la sesión.
  • path – La ruta al recurso compartido.
  • browseable – Si el recurso compartido debe aparecer en la lista de recursos compartidos disponibles. Si se establece en no otros usuarios no podrán ver el recurso compartido.
  • read only – Si los usuarios especificados en la lista valid users pueden escribir en este recurso compartido.
  • force create mode – Establece los permisos para los archivos recién creados en este recurso compartido.
  • force directory mode – Establece los permisos para los directorios recién creados en este recurso compartido.
  • valid users – Una lista de usuarios y grupos que pueden acceder al recurso compartido. Los grupos llevan el prefijo @.

Para más información sobre las opciones disponibles, consulte la página de documentación del archivo de configuración de Samba.

Una vez hecho esto, reinicie los servicios de Samba con:

sudo systemctl restart smb.servicesudo systemctl restart nmb.service

En las siguientes secciones, le mostraremos cómo conectarse a un recurso compartido de Samba desde clientes de Linux, macOS y Windows.

Conexión a un recurso compartido Samba desde Linux #

Los usuarios de Linux pueden acceder al recurso compartido Samba desde la línea de comandos, utilizando el administrador de archivos o montar el recurso compartido Samba.

Usando el cliente smbclient #

smbclient es una herramienta que permite acceder a Samba desde la línea de comandos. El paquete smbclient no está preinstalado en la mayoría de las distros de Linux por lo que tendrás que instalarlo con el gestor de paquetes de tu distribución.

Para instalar smbclient en Ubuntu y Debian ejecute:

sudo apt install smbclient

Para instalar smbclient en CentOS y Fedora ejecute:

sudo yum install samba-client

La sintaxis para acceder a un recurso compartido de Samba es la siguiente:

mbclient //samba_hostname_or_server_ip/share_name -U username

Por ejemplo, para conectarse a un recurso compartido llamado josh en un servidor Samba con dirección IP 192.168.121.118 como usuario josh se ejecutaría:

smbclient //192.168.121.118/josh -U josh

Se le pedirá que introduzca la contraseña del usuario.

Enter WORKGROUP\josh's password:

Una vez introducida la contraseña, se iniciará la sesión en la interfaz de línea de comandos de Samba.

Try "help" to get a list of possible commands.smb: \>

Montando el recurso compartido de Samba #

Para montar un recurso compartido de Samba en Linux primero hay que instalar el paquete cifs-utils.

En Ubuntu y Debian ejecuta:

sudo apt install cifs-utils

En CentOS y Fedora ejecuta:

sudo yum install cifs-utils

A continuación, crea un punto de montaje:

sudo mkdir /mnt/smbmount

Monta el recurso compartido utilizando el siguiente comando:

sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

Por ejemplo, para montar un recurso compartido llamado josh en un servidor Samba con dirección IP 192.168.121.118 como usuario josh en el punto de montaje /mnt/smbmount, deberá ejecutar:

sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount

Se le pedirá que introduzca la contraseña del usuario.

Password for josh@//192.168.121.118/josh: ********

Usando la GUI #

Archivos, el gestor de archivos por defecto en Gnome tiene una opción incorporada para acceder a los recursos compartidos de Samba.

  1. Abrir Archivos y hacer clic en «Otras ubicaciones» en la barra lateral.
  2. En «Conectar al servidor», introduzca la dirección del recurso compartido de Samba en el siguiente formato smb://samba_hostname_or_server_ip/sharename.
  3. Haga clic en «Conectar» y aparecerá la siguiente pantalla:

  4. Seleccione «Usuario registrado», introduzca el nombre de usuario y la contraseña de Samba y haga clic en «Conectar».
  5. Se mostrarán los archivos del servidor Samba.

Conexión a un Samba Share desde macOS #

En macOS, se puede acceder a los Samba Shares tanto desde la línea de comandos como utilizando el gestor de archivos predeterminado de macOS, Finder. Los siguientes pasos muestran cómo acceder al recurso compartido utilizando Finder.

  1. Abra el «Finder», seleccione «Ir» y haga clic en «Conectar a».
  2. En «Conectar a», introduzca la dirección del recurso compartido Samba en el siguiente formato smb://samba_hostname_or_server_ip/sharename.

  3. Haga clic en «Conectar» y aparecerá la siguiente pantalla:

  4. Seleccione «Usuario registrado», introduzca el nombre de usuario y la contraseña de Samba y haga clic en «Conectar».
  5. Se mostrarán los archivos del servidor Samba.

Conexión a un recurso compartido Samba desde Windows #

Los usuarios de Windows también tienen la opción de conectarse al recurso compartido Samba tanto desde la línea de comandos como desde la GUI. Los pasos siguientes muestran cómo acceder al recurso compartido utilizando el Explorador de archivos de Windows.

  1. Abra el Explorador de archivos y, en el panel izquierdo, haga clic con el botón derecho en «Este PC».
  2. Seleccione «Elegir una ubicación de red personalizada» y, a continuación, haga clic en «Siguiente».
  3. En «Dirección de Internet o de red», introduzca la dirección del recurso compartido Samba con el siguiente formato \samba_hostname_or_server_ip\sharename.

  4. Haga clic en «Siguiente» y se le pedirá que introduzca las credenciales de acceso como se muestra a continuación:

  5. En la siguiente ventana, puede escribir un nombre personalizado para la ubicación de red. El predeterminado será recogido por el servidor Samba.

  6. Haga clic en «Siguiente» para pasar a la última pantalla del asistente de configuración de la conexión.
  7. Haga clic en «Finalizar» y se mostrarán los archivos del servidor Samba.

Conclusión #

En este tutorial, usted ha aprendido cómo instalar un servidor Samba en CentOS 7 y crear diferentes tipos de compartidos y usuarios. También le hemos mostrado cómo conectarse al servidor Samba desde dispositivos Linux, macOS y Windows.

Deja una respuesta

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