
Samba es un programa. Permite compartir archivos e impresoras entre sistemas distintos, tipo Windows, macOS, y Linux en una red. Resulta útil para hacer que todos los dispositivos laboren en conjunto, sin importar qué sistema operativo utilicen. También, a más de eso, puede manejar accesos y recursos centralizados.
1.INSTALAR SAMBA
Actualizamos la lista de paquetes disponibles en los repositorios de tu sistema Linux e instalamos el servicio
sudo apt update
sudo apt install samba
2.CONFIGURACIÓN SAMBA
Dentro de la ruta /etc/samba/smb.conf es donde encontraremos el archivo de configuración del servicio:
[global]: Establece configuraciones generales del servidor Samba; nombre del grupo, seguridad, y las redes…
[shares]: Define los recursos compartidos: carpetas, impresoras, y quién tiene acceso.

3.[GLOBAL]
SERVER ROLE: Define el rol del servidor Samba
- standalone server: Servidor independiente.
- member server: Servidor miembro de un dominio.
- active directory domain controller: Controlador de dominio AD.
LOG FILE: Ruta al archivo donde Samba guarda los logs
- log file = /var/log/samba/smb.log
MAX LOG SIZE: Tamaño máximo en kilobytes que puede alcanzar el archivo de log antes de ser rotado
- max log size = 10000
SMB PORTS: Especifica los puertos TCP que Samba usará
- smb ports = 445
BIND INTERFACES ONLY: Si está establecido como Yes, Samba solo escuchará en las interfaces definidas en el parámetro interfaces
- bind interfaces only = Yes
DISABLE NETBIOS: Si está establecido como Yes, deshabilita NetBIOS. Esto es útil para configuraciones modernas que solo usan el protocolo SMB sobre TCP/IP.
- disable netbios = Yes
SECURITY: Define el modelo de seguridad que utiliza Samba para autenticar usuarios.
- user: Requiere que los usuarios se autentiquen con nombre y contraseña.
- share: Permite el acceso sin autenticación por recurso compartido. (Obsoleto)
- domain: El servidor actúa como parte de un dominio NT.
- ads: Para autenticación con Active Directory.
- security = user
MAP TO GUEST: Define cómo manejar usuarios que no tienen cuenta en el servidor.
- Never: Nunca mapear a un invitado.
- Bad User: Mapear usuarios no válidos al invitado.
- Bad Password: Usuarios con contraseñas incorrectas se mapearán como invitados.
- map to guest = Bad User
INTERFACES: Especifica qué interfaces/tarjetas de red deben ser utilizadas por Samba
- interfaces = 192.168.1.1/24 eth0
4.[SHARES]
PATH: ruta de la carpeta en la raíz
BROWSEBALE: Para poner visible o no visible en la red
- browseable = yes/no
DIRECTORY MASK: define los permisos que intentará aplicar Samba cuando se cree un directorio.
HIDE UNREADABLE: controla si los archivos y directorios a los que un usuario no tiene permiso de lectura (por las reglas de permisos del sistema operativo) se deben ocultar en los recursos compartidos.
- hide unreadable = yes/no
READ ONLY : Lo activo si no quiero que haya permisos de ejecución ni que nadie pueda borrar archivos
- read only = yes/no
GUEST OKAY: acceso de invitados sin necesidad de autenticación de usuarios
CREATE MASK: Define los permisos máximos permitidos para los archivos creados en el recurso compartido.
- create mask = 000
FORCE CREATE MODE :Establece los permisos mínimos obligatorios para los archivos creados en el recurso compartido.
- force create mode = 0000
VALID USER: validar los usuarios o los grupos
- valid users = usuario,@grupo
INVALID USERS: usuarios que no podrán acceder al servicio
- invalid users = pablo,@empresa
READ LIST: usuarios o grupos especificados en read list solo podrán leer archivos en el recurso compartido, incluso si el recurso está configurado como escribible
- read list = pablo,@empresa
INHERIT PERMISSIONS: corresponde a la herencia windows, los permisos asignados dependen de la configuración de Samba
- inherit permissions = yes/no
SERVER STRING: breve descripción o comentario para identificar el servidor Samba en la red.
- server string = Servidor Samba

5. ACTUALIZAR SERVICIO
Por último debemos actualizar el servicio para que se guarden todos los cambios aplicados y podamos tener el servidor con la nueva configuración.
sudo systemctl restart smbd
