Samba es un conjunto de programas, bajo Licencia Pública General GNU, que implementan en sistemas basados en UNIX el protocolo SMB (protocolo CIFS, Common Internet File System, diseñado para trabajar a través de NetBios y proveer, o acceder, recursos compartidos de redes Windows)

El siguiente procedimiento se aplica sobre Ubuntu Linux en su versión 8.04 para una red doméstica de pocos equipos, pero debería poder aplicarse sobre cualquier Sistema Operativo basado en UNIX y cualquier topología de red, salvo cuestiones específicas.

Requisitos

  • samba: Servidor SMB.
  • samba-client: Diversos clientes para el protoclo SMB.
  • samba-common: Ficheros necesarios para cliente y servidor.
  • smbfs: Samba file system

En Ubuntu y distribuciones basadas en Debian, puedes descargarla mediante:

$ sudo apt-get install samba samba-client  samba-common smbfs


Configuración básica

Alta de usuarios: las cuentas entre el servidor samba y los nodos Windows deben estar sincronizadas. Es decir, debemos disponer en Linux los mismos usuarios que Windows (tanto usuario como password).

sudo useradd -s /bin/bash nombre_de_usuario_windows   #si el usuario no utilizará servicios de Linux, como telnet, ftp, etc, no será necesario el interprete de comandos bash y podemos reemplazarlo, por ejemplo, por /bin/nologing.
sudo passwd nombre_de_usuario_windows   #esto tampoco será necesario si el usuario no accede a servicios de Linux
sudo smbpasswd -a nombre_de_usuario_windows


Archivo hosts: opcionalmente, para trabajar con nombres de hosts en vez de IPs, se puede modificar, tanto en Windows (C:\WINDOWS\system32\drivers\etc\hosts) como en Linux (/etc/hosts) el archivo hosts.

127.0.0.1       localhost
192.168.0.2     windows-server
192.168.0.4      localhost
192.168.0.6      ubuntu


Esta no es la única forma de trabajar con nombres de hosts, también se puede hacer utilizando el archivo lmhost o mediante algún servidor de nombres de dominio (DNS).

smb.conf: este archivo contiene toda la configuración del Samba, en nuestro caso realizaremos unas pocas modificaciones en /etc/samba/smb.conf

workgroup = nombre del grupo de trabajo de la red Windows
server string = Servidor Samba %v en %L    #comentario breve que de una descripción del host samba
security = share #'share' es la forma menos segura, si se reemplaza por 'user' la autenticación se hace por usuario


Luego, para compartir un recurso, en este caso un directorio:

[nombre_simbolico_de_carpeta_compartida]
  comment = Directorio compartido Linux
  path = /home/mi_usuario
  public = yes
  writeable = yes
  #valid users = lista de usuarios o grupos habilitados
  #write list = lista de  usuarios o grupos habilitados


Daemon: finalmente, para controlar el servicio samba (smbd), lo puedes hacer a través del script:

/etc/init.d/samba restart | stop | start


smbclient: para acceder al cualquier recurso de alguna máquina Windows o servidor Samba, mediante smbclient se puede determinar los recursos compartidos que posee está.

smbclient -U usuario -L alguna_maquina


Lo cual le devolvería más menos lo siguiente:

Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E]

Sharename       Type      Comment
---------       ----      -------
homes           Disk      Home Directories
netlogon        Disk      Network Logon Service
ftp             Disk      ftp
IPC$            IPC       IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor)
ADMIN$          IPC       IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor)
epl5900         Printer   Created by redhat-config-printer 0.6.x
hp2550bw        Printer   Created by redhat-config-printer 0.6.x
Anonymous login successful
Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E]

Server               Comment
---------            -------
mi-servidor          Servidor Samba 3.0.7-1.3E en mi-servidor

Workgroup            Master
---------            -------
MI-DOMINIO           MI-SERVIDOR


Acceso a recursos compartidos

Desde Windows

Para acceder desde Windows a un recurso compartido, se puede hacer:

  • Ingresando en la barra de direcciones desde Windows Explorer:

\\ip_servidor\recurso_compartido

o

\\nombre_servidor\recurso_compartido

  • Agregando la unidad de red, también desde el Explorador de Windows, Herramientas \ Conectar a unidad de red...

\\ip_o_nombre_servidor\recurso_compartido


Desde Linux:

Desde Linux, se puede hacer mediante:

  • smbcliente (como si fuese un cliente ftp):

smbclient //ip_o_nombre_servidor/recurso_compartido -U usuario

  • Montando la unidad de red:

mount -t smbfs -o username=user,password=pass  //ip_o_nombre_servidor/recurso_compartido  /media/punto_montaje

  • Montar automáticamente la unidad de red al inicio, editando el archivo /etc/fstab

//ip_o_nombre_servidor/recurso_compartido /media/punto_montaje smbfs username=***,password=***,rw,auto, 0 0

  • A través del mismo Navegador de Archivos de Nautilus

Basada en el tutorial Cómo configurar SAMBA de Linux Para Todos