Configuración básica de Samba CentOS 6, Fedora™ o Red Hat 6

Autor: Joel Barrios Dueñas
http://www.alcancelibre.org/


Introducción.

Acerca del protocolo SMB.

SMB (acrónimo de Server Message Block) es un protocolo, del Nivel de Presentación del modelo OSI de TCP/IP, creado en 1985 por IBM. Algunas veces es referido también como CIFS (Acrónimo de Common Internet File System,http://samba.org/cifs/) tras ser renombrado por Microsoft en 1998. Entre otras cosas, Microsoft añadió al protocolo soporte para enlaces simbólicos y duros así como también soporte para archivos de gran tamaño. Por mera coincidencia, ésto ocurrió por la misma época en que Sun Microsystems hizo el lanzamiento de WebNFS (una versión extendida de NFS,http://www.sun.com/software/webnfs/overview.xml).
SMB fue originalmente diseñado para trabajar a través del protocolo NetBIOS, el cual a su vez trabaja sobre NetBEUI (acrónimo de NetBIOS Extended User Interface, que se traduce como Interfaz de Usuario Extendida de NetBIOS), IPX/SPX (acrónimo deInternet Packet Exchange/Sequenced Packet Exchange, que se traduce como Intercambio de paquetes inter-red/Intercambio de paquetes secuenciales) o NBT, aunque también puede trabajar directamente sobre TCP/IP.


Acerca de Samba.

SAMBA es un conjunto de programas originalmente creados por Andrew Tridgell y actualmente mantenidos por The SAMBA Team, bajo la Licencia Publica General GNU y que implementan en sistemas basados sobre UNIX™ el protocolo SMB. Sirve como reemplazo total para Windows™ NT, Warp™, NFS™ o servidores Netware™.

Equipamiento lógico necesario.

Necesitará tener instalados los siguientes paquetes:
  • samba: Servidor SMB.
  • samba-client: Diversos clientes para el protocolo SMB.
  • samba-common: Archivos necesarios para cliente y servidor.

Instalación a través de yum.

Si utiliza CentOSFedora™ o Red Hat™ Enterprise Linux, sólo ejecute:
yum -y install samba samba-client samba-common
En CentOS 6 y Red Hat™ Enterprise Linux 6 se instalará Samba 3.6.9.
En CentOS 5 y Red Hat™ Enterprise Linux 5 se instalará Samba 3.0.33, sin embargo hay opción a utilizar en su lugar Samba 3.6.6 instalando los paquetes samba3xsamba3x-client y samba3x-common.
yum remove samba samba-client samba-common
yum -y install samba3x samba-client3x samba-common3x

Modificaciones necesarias en el muro cortafuegos.

Es necesario abrir los puertos 135 al 139 por TCP y UDP y el puerto 445 por TCP.

Servicio iptables.

Ejecute lo siguiente:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 135:139 -j ACCEPT
iptables -A INPUT -m state --state NEW -m udp -p udp --dport 135:139 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
Ejecute lo siguiente para guardar los cambios:
service iptables save
O bien edite el archivo /etc/sysconfig/iptables:
vi /etc/sysconfig/iptables
Y añada el siguiente contenido:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 135:139 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 135:139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
Reinicie el servicio para aplicar los cambios:
service iptables restart

Shorewall.

Edite el archivo /etc/shorewall/rules:
vi /etc/shorewall/rules
Las reglas corresponderían a algo similar a lo siguiente para permitir el acceso desde cualquier zona del muro cortafuegos:
#ACTION SOURCE DEST PROTO  DEST  SOURCE
#    PORT  PORT(S)1
ACCEPT all fw tcp 135:139,445
ACCEPT all fw udp 135:139
Si se tienen varias zonas en el muro cortafuegos y sólo se desea permitir el acceso desde la zona correspondiente a red de área local, las reglas corresponderían a algo similar a lo siguiente.
#ACTION SOURCE DEST PROTO  DEST  SOURCE
#    PORT  PORT(S)1
ACCEPT loc fw tcp 135:139,445
ACCEPT loc fw udp 135:139
Ejecute lo siguiente para aplicar los cambios:
service shorewall restart

SELinux y el servicio smb.

Políticas más comunes y contextos utilizados.

Ejecute lo siguiente para permitir compartir todos los recursos en modo de sólo lectura:
setsebool -P samba_export_all_ro 1
Ejecute lo siguiente para permitir compartir todos los recursos en modo de lectura y escritura:
setsebool -P samba_export_all_rw 1
Para cualquiera de las dos políticas anteriores: los archivos y directorios a compartir requieren el contexto samba_share_t. Ejemplo:
mkdir -p /srv/samba/ejemplo && \
    chcon -t samba_share_t /srv/samba/ejemplo
Ejecute semanage con fcontext como argumento, la opción -a, la opción -t con samba_share_t como argumento y el directorio o archivo de destino como último argumento para establecer este contexto como el predeterminado para éste:
semanage fcontext -a -t samba_share_t \
    /srv/samba/ejemplo
Lo anterior permitirá establecer los contextos establecidos como los predeterminados para cada directorio o archivo definido. Es decir se restaurarán estos mimos contextos al ejecutar restorecon sobre estos archivos o directorios. Puede aplicarse también con cualquier otro contexto de SELinux.
Ejecute lo siguiente sólo si se requiere permitir la escritura como usuario anónimo:
setsebool -P allow_smbd_anon_write 1
Lo anterior requiere que los archivos y directorios involucrados tengan el contexto public_content_rw_t. Ejemplo:
mkdir -p /srv/samba/publico && \
    chown nobody:nobody /srv/samba/publico && \
    chcon -t public_content_rw_t /srv/samba/publico
Ejecute semanage con fcontext como argumento, la opción -a, la opción -t con public_content_rw_t como argumento y el directorio o archivo de destino como último argumento para establecer este contexto como el predeterminado para éste:
semanage fcontext -a -t public_content_rw_t \
    /srv/samba/ejemplo

Políticas para los directorios de inicio.

Ejecute lo siguiente para permitir compartir a través de Samba los directorios de inicio de los usuarios del anfitrión local:
setsebool -P samba_enable_home_dirs 1
Ejecute lo siguiente para permitir utilizar los directorios de inicio de un servidor Samba remoto como los directorios de inicio del anfitrión local:
setsebool -P use_samba_home_dirs 1

Políticas específicas para Controlador Primario de Dominio.

A fin de que SELinux permita al servicio smb crear nuevos directorios de inicio para los usuarios a través de PAM (operación común en Controladores Primarios de Dominio), ejecute:
setsebool -P samba_create_home_dirs 1
Ejecute lo siguiente para permitir el funcionamiento como Controlador Primario de Dominio (PDCPrimary Domain Controler):
setsebool -P samba_domain_controller 1
Ejecute lo siguiente para permitir el funcionamiento como un organizador de mapa de puertos (portmappper):
setsebool -P samba_portmapper 1
Ejecute lo siguiente para permitir la ejecución sin confinamiento de programas dentro del directorio /var/lib/samba/scripts:
setsebool -P samba_run_unconfined 1

Iniciar el servicio y añadirlo al arranque del sistema.

Para iniciar los servicios nmb y smb por primera vez, ejecute:
service nmb start
service smb start
Si realiza algún cambio en la configuración de la opción netbios name, es necesario reiniciar el servicio nmb, el cual es el encargado de proveer el servidor de nombres para los clientes a través de NetBIOS sobre IP.
service nmb restart
Si va a aplicar algún cambio en cualquier otra opción de la configuración, como son los recursos compartidos, sólo es necesario reiniciar el servicio smb:
service smb restart
Para que los servicios nmb y smb inicien automáticamente junto con el sistema, ejecute lo siguiente:
chkconfig nmb on
chkconfig smb on

Procedimientos.

Alta de cuentas de usuario.

Asigne una contraseña al usuario root. Ésta puede ser distinta a la utilizada en el sistema.
smbpasswd -a root
Las cuentas de usuario que se utilizarán para acceder hacia Samba pueden prescindir de acceso al intérprete de mandatos. Se puede definir /sbin/nologin o /bin/false como intérprete de mandatos para la cuenta de usuario involucrada.
useradd -s /sbin/nologin usuario
smbpasswd -a usuario
Es opcional e innecesario asignar contraseña con passwd, por lo cual las cuentas correspondientes estarían inactivas para el resto de los servicios.

El archivo lmhosts

El archivo /etc/samba/lmhosts (lmhosts es acrónimo de LAN Manager hosts) se utiliza de modo similar al archivo /etc/hosts, pero se utiliza específicamente para resolver los nombres NetBIOS. Debe resolver al menos el nombre del anfitrión local.
Edite el archivo /etc/samba/lmhosts:
vi /etc/samba/lmhosts
Encontrará el siguiente contenido:
127.0.0.1       localhost
El nombre NetBIOS debe tener un máximo de doce caracteres alfanuméricos. Normalmente se define el nombre corto del servidor asociado a la dirección IP utilizada para acceder a la red de área local. La separación de campos se hace con un tabulador. Ejemplo:
127.0.0.1       localhost
192.168.70.1     servidor
Opcionalmente se pueden añadir los nombres y direcciones IP de cada uno de los anfitriones de la red local. Ejemplo:
127.0.0.1        localhost
192.168.70.1     servidor
192.168.70.2     joel
192.168.70.3     blanca
192.168.70.4     joelalejandro
192.168.70.5     sergioarmando
192.168.70.6     reneisaac
192.168.70.7     finanzas
192.168.70.8     direccion

Opciones principales del archivo smb.conf.

Edite el archivo /etc/samba/smb.conf con cualquier editor de texto simple.
vi /etc/samba/smb.conf
Dentro de este archivo, encontrará información que será de utilidad y que está comentada con almohadillas (símbolo #) y varios ejemplos comentados con punto y coma (símbolo ;), siendo estos últimos los que se pueden tomar como referencia para configurar.

Opción workgroup.

Se utiliza para establecer el grupo de trabajo. El valor puede estar indistintamente en mayúsculas o minúsculas y debe tener una longitud del nombre debe ser de hasta 12 caracteres. Ejemplo:
workgroup = MIGRUPO

Opción netbios name.

Permite establecer arbitrariamente un nombre de anfitrión distinto al detectado automáticamente. Este nombre de anfitrión deberá corresponder con el establecido en el archivo /etc/samba/lmhosts. El valor puede estar indistintamente en mayúsculas o minúsculas y debe tener una longitud del nombre debe ser de hasta 12 caracteres. Ejemplo:
netbios name = servidor

Opción server string.

Es de carácter informativo para los usuarios de la red de área local. Permite definir una descripción breve acerca del servidor.
server string = Servidor Samba %v en %L

Opción hosts allow.

Permite establecer seguridad adicional estableciendo la lista de control de acceso de anfitriones. En ésta se pueden definir direcciones IP individuales o redes que tendrán permiso de acceso hacia el servidor. Si, por mencionar un ejemplo, la red consiste en las anfitriones con dirección IP que van desde 192.168.70.1 hasta 192.168.70.254, el rango de direcciones IP que se definirá en hosts allow será «192.168.70.», de modo tal que sólo se permitirá el acceso dichas máquinas. En el siguiente ejemplo se definen las redes 192.168.70.0/24 y 192.168.37.0/24, especificando los tres primeros octetos de la dirección IP de red, así como cualquier dirección IP de la red 127.0.0.0/8 (retorno del sistema o loopback), siendo necesario definir sólo el primer octeto de dicho segmento:
hosts allow = 127., 192.168.70., 192.168.37.

Opción name resolve order.

De modo predeterminado está ausente de la configuración. Puede añadirla después de la opción mencionada arriba. Define el orden a través del cual se tratará de resolver los nombres NETBIOS. Si utiliza el siguiente ejemplo, se establece que primero se intentará resolver los nombres NETBIOS con la información del archivo /etc/samba/lmhosts, luego el archivo /etc/hosts, luego a través de consultas en el servidor WINS y, si todo lo anterior falla, a través de la dirección IP de difusión de la red local.
name resolve order = lmhosts hosts wins bcast
Si se va a utilizar un servidor WINS en otro servidor o se está configurando el sistema sólo como cliente SMB, se pueden agilizar las comunicaciones con el resto de los equipos de la red local estableciendo wins como la primera opción para resolución de nombres NETBIOS:
name resolve order = wins lmhosts hosts bcast


Nota.
Los administradores de archivos de los distintos escritorios de Linux requieren que esté presente esta última configuración en el archivo /etc/samba/smb.conf del anfitrión desde el cual se ejecute y que además se especifique wins en el orden de resolución de nombres del archivo /etc/nsswitch.conf del anfitrión desde el cual se ejecute. De otro modo Nautilus mostrará invariablemente un error cada vez que se intente conectar a cualquier servidor de red utilizando un nombre NETBIOS.
Guarde el archivo /etc/samba/smb.conf, regrese al intérprete de mandatos y edite el archivo /etc/nsswitch.conf:
vi /etc/nsswitch.conf
En CentOS 6 y Red Hat™ Enterprise Linux 6, alrededor de la línea 38, localice lo siguiente:
hosts:      files dns
Añada wins después de dns:
hosts:      files dns wins
En versiones recientes de Fedora™, openSUSE™ o Ubuntu™ encontrará lo siguiente alrededor de la línea 63:
files mdns4_minimal [NOTFOUND=return] dns
Añada wins después de dns:
files mdns4_minimal [NOTFOUND=return] dns wins

Opción interfaces.

Permite establecer desde que interfaces de red del sistema se escucharán peticiones. Samba rechazará todas las conexiones provenientes desde cualquier otra interfaz o dirección IP, sin definir. Ésto es útil cuando Samba se ejecuta en un servidor que sirve además de puerta de enlace para la red local, impidiendo se establezcan conexiones hacia este servicio desde Internet o bien fuera del bloque o segmento, de direcciones de la red local.
Los valores aceptados para esta opción consisten una lista separada por comas o espacios, con los nombres de las interfaces (lo, eth0, eth1, etc.) y direcciones IP utilizada en una interfaz en particular, con la máscara de sub-red en formato CIDR(Classless Inter-Domain Routing), es decir, expresada en bits. Ejemplo:
interfaces = lo, eth1, 192.168.70.254/25

Opción remote announce.

La opción remote announce se encarga de que el servidor Samba se anuncie a si mismo de forma periódica hacia uno o más grupos de trabajo específicos. Se utiliza cuando se necesita que el servidor Samba aparezca en otros grupos de trabajo existentes en la red de área local. El grupo de trabajo de destino puede estar en donde sea, mientras exista una ruta y sea posible la difusión exitosa de paquetes.
Los valores que pueden ser utilizados son direcciones IP de difusión (broadcast) de la red utilizada (es decir la última dirección IP del segmento de red) y/o nombres de grupos de trabajo. En el siguiente ejemplo se define que el servidor Samba se anuncie a través de las direcciones IP de difusión 192.168.70.127 (que corresponde a la dirección IP de difusión de la red192.168.70.0/25) y 192.168.2.255 (que corresponde a la dirección IP de difusión de la red 192.168.2.0/24), hacia los grupos de trabajo DOMINIO1 y DOMINIO2 que corresponden a estas redes.
remote announce = 192.168.70.127/DOMINIO1, 192.168.2.255/DOMINIO2
Para aplicar los cambios, reinicie los servicios smb y nmb:
service smb restart
service nmb restart

Impresoras en Samba.

Las impresoras se comparten de modo predeterminado y sólo hay que realizar algunos ajustes. Si se desea que se pueda acceder hacia la impresora como usuario invitado sin contraseña, añada public = Yes — lo mimso queguest ok = Yes— en la sección de impresoras.
Edite el archivo /etc/samba/smb.conf:
vi /etc/samba/smb.conf
Localice la sección de impresoras y añada public = Yes a la configuración:
[printers]
        comment = El comentario que guste.
        path = /var/spool/samba
        printable = Yes
        browseable = No
 writable = no
 printable = yes
        public = Yes
Para aplicar los cambios, reinicie el servicio smb:
service smb restart
Para la administración de las colas de impresión, anteriormente se hacía utilizando la opción printer admin, definiendo una lista de usuarios o grupos. Actualmente se hace de manera similar a cómo se hace en en Windows, utilizando políticas, ejecute:
net -S servidor -U root rpc rights grant fulano SePrintOperatorPrivilege

Compartiendo directorios a través de Samba.

Para los directorios o volúmenes que se irán a compartir, en el mismo archivo de configuración encontrará distintos ejemplos para distintas situaciones particulares. Lo siguinte corresponde a un ejemoplo básico:
[lo_que_sea]
        comment = Comentario que se le ocurra
        path = /cualquier/ruta/que/desee/compartir
Procure que los nombres de los recursos a compartir tengan un máximo de 12 caracteres, utilizando sólo caracteres alfanuméricos de la tabla de caracteres ASCII.
El volumen puede utilizar cualquiera de las siguientes opciones:
OpciónDescripción
guest ok
Define si se permitirá el acceso como usuario invitado. El valor puede ser Yes o No.
public
Es un equivalente de guest ok, es decir define si se permitirá el acceso como usuario invitado. El valor puede ser Yes o No.
browseable
Define si se permitirá mostrar este recurso en las listas de recursos compartidos. El valor puede ser Yes o No.
writable
Define si se permitirá la escritura. Es la opción contraria de read only. El valor puede ser Yes o No. Ejemplos: «writable = Yes»es lo mismo que «read only = No». Obviamente «writable = No» es lo mismo que «read only = Yes»
valid users
Define los usuarios o grupos, que podrán acceder al recurso compartido. Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @. Ejemplo:fulano, mengano, @administradores
write list
Define los usuarios o grupos, que podrán acceder con permiso de escritura. Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @. Ejemplo:fulano, mengano, @administradores
admin users
Define los usuarios o grupos, que podrán acceder con permisos administrativos para el recurso. Es decir, podrán acceder hacia el recurso realizando todas las operaciones como super-usuarios. Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @. Ejemplo: fulano, mengano, @administradores
directory mask
Es lo mismo que directory mode. Define qué permiso en el sistema tendrán los subdirectorios creados dentro del recurso. Ejemplos: 1777
create mask
Define que permiso en el sistema tendrán los nuevos archivos creados dentro del recurso. Ejemplo: 0644

Ejemplo.

En el siguiente ejemplo se compartirá a través de Samba el recurso denominado ejemplo, el cual está localizado en el directorio/srv/samba/ejemplo de la unidad de almacenamiento. Se permitirá el acceso a cualquiera, pero será un recurso de sólo lectura excepto para los usuarios administrador y fulano, quienes tendrán privilegios de lectura y escritura. Todo nuevo directorio que sea creado en su interior tendrá permiso 755 (drwxr-xr-x) y todo archivo que sea puesto en su interior tendrá permisos 644 (-rw-r--r--).
Genere el nuevo directorio /srv/samba/ejemplo ejecutando lo siguiente:
mkdir -p /srv/samba/ejemplo
Cambie el contexto de SELinux a fin de que este directorio sea considerado como contenido Samba.
chcon -t samba_share_t /srv/samba/ejemplo
Ejecute lo siguiente para hacer permanente el contexto:
semanage fcontext -a -t samba_share_t \
    /srv/samba/ejemplo
Cambie asigne las listas de control de acceso con permisos de lectura, escritura y acceso a los usuarios fulano y zutano:
setfacl -m u:fulano:rwX,u:zutano:rwX /srv/samba/ejemplo
Edite el archivo /etc/samba/smb.conf:
vi /etc/samba/smb.conf
Al final del archivo añada el siguiente contenido:
[ejemplo]
 comment = Recurso de ejemplo
 path = /srv/samba/ejemplo
 guest ok = Yes
 read only = Yes
 write list = fulano, zutano
 directory mask = 0755
 create mask = 0644
Guarde los cambios y salga del editor de texto.
Reinicie el servicio smb para aplicar los cambios:
service smb restart
Ejecute smbclient con //localhost/ejemplo como argumento y la opción -U (mayúscula) con fulano como argumento. Se solicitará ingresar la contraseña del usuario fulano.
smbclient //locahost/ejemplo -U fulano
Pulse CTRL-D o ejecute exit para salir del intérprete de smbclient.

Ocultando archivos que inician con punto.

Es poco conveniente que los usuarios puedan acceder, notando la presencia de archivos ocultos (archivos de configuración, por lo general), es decir archivos cuyo nombre comienza con un punto, como es el caso del directorio de inicio del usuario en el servidor Samba (.bashrc, .bash_profile, .bash_history, etc.). Puede utilizarse la opción hide dot files, con el valor Yes, para mantenerlos ocultos.
hide dot files = Yes
Esta opción es útil para complementar la configuración de los directorios personales de los usuarios.
Edite el archivo /etc/samba/smb.conf:
vi /etc/samba/smb.conf
Localice la configuración correspondiente a los directorios de inicio de los usuarios y añada la opción hide dot files con el valorYes, como se muestra a continuación:
[homes]
   comment = Home Directories
   browseable = no
   writable = yes
   hide dot files = Yes
Para aplicar los cambios, reinicie el servicio smb:
service smb restart

Comprobaciones.

Modo texto desde GNU/Linux.

Montaje de recursos compartidos desde GNU/Linux.

Abra una terminal como root y ejecute mkdir para crear un punto de montaje:
mkdir /mnt/ejemplo
Ejecute mount con la opción -t con el valor cifs, la opción -o para especificar con username el nombre de usuario a utilizar, la ruta del recurso compartido en el servidor Samba y el punto de montaje a utilizar:
mount -t cifs -o username=fulano //servidor/ejemplo /mnt/ejemplo
Lo anterior solicitará se ingrese la contraseña del usuario utilizado en el servidor Samba especificado.
Para hacer permanente lo anterior, utilice un editor de texto para crear el archivo /etc/credentials:
vi /etc/credentials
Añada el siguiente contenido, especificando el nombre de usuario y contraseña que serán utilizados específicamente con el recurso compartido involucrado:
username=fulano
password=contraseña
Cambie los permisos de acceso del archivo, de modo que sólo el usuario root pueda ver y modificar el contenido de éste:
chmod 600 /etc/credentials
Edite el archivo /etc/fstab:
vi /etc/fstab
Añada el siguiente contenido, especificando con las opciones uid y gid los números de UID y GID del usuario y grupo del anfitrión local que utilizarán el recurso. De modo predeterminado, este recurso será montado automáticamente con el siguiente reinicio de sistema.
//servidor/ejemplo   /mnt/ejemplo   cifs   credentials=/etc/credentials,uid=1005,gid=1005   0 0
Utilice las opciones noauto y user si se prefiere que el recurso sea montado manualmente por un usuario del anfitrión local:
//servidor/ejemplo   /mnt/ejemplo   cifs   credentials=/etc/credentials,uid=1005,gid=1005,noauto,user   0 0

Herramienta smbclient desde GNU/Linux.

Indudablemente el método más práctico y también el más sencillo para utilizar y hacer pruebas de diagnóstico utilizandosmbclient. Éste permite acceder hacía cualquier servidor Samba o Windows™, de modo similar a como se hace con ftp en el intérprete de mandatos.
Para acceder al cualquier recurso CIFS/SMB, determine primero qué volúmenes o recursos compartidos hay. Ejecute smbclientdel siguiente modo:
smbclient -U usuario -L servidor
Lo anterior devolverá una salida similar la siguiente:
Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.6.9-151.el6]

        Sharename       Type      Comment
        ---------       ----      -------
        homes           Disk      Home Directories
        netlogon        Disk      Network Logon Service
        ejemplo         Disk      ejemplo
        IPC$            IPC       IPC Service (Servidor Samba 3.5.4-68.el6_0.2 en mi-servidor)
        ADMIN$          IPC       IPC Service (Servidor Samba 3.5.4-68.el6_0.2 en mi-servidor)
        epl5900         Printer   Created by system-config-printer 1.2.x
        hp2550bw        Printer   Created by system-config-printer 1.2.x
Anonymous login successful
Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.6.9-151.el6]

        Server               Comment
        ---------            -------
        mi-servidor          Servidor Samba 3.6.9-151.el6 en mi-servidor

        Workgroup            Master
        ---------            -------
        MI-DOMINIO           MI-SERVIDOR
La siguiente corresponde a la sintaxis básica para poder acceder hacia los recursos compartidos a través de CIFS/SMB:
smbclient //alguna_maquina/recurso -U usuario
Ejemplo:
smbclient //SERVIDOR/EJEMPLO -U fulano
Lo anterior solicitará la contraseña del usuario fulano.
smbclient  //SERVIDOR/EJEMPLO -U fulano
added interface ip=192.168.70.126 bcast=192.168.70.127 nmask=255.255.255.128
Password: 
Domain=[fulano] OS=[Unix] Server=[Samba 3.6.9-151.el6]
smb: >
Pueden utilizarse casi las mismas funciones del intérprete de ftp —como serían get, mget, put, del, etc.

Modo gráfico

Desde el escritorio Linux.

Las principales interfaces de escritorio para Linux —MATE, Cinnamon, Unity, GNOME, KDE, Xfce— incluyen soporte de cliente CIFS/SMB para sus administradores de archivos. Los URI deben utilizar el formato smb://servidor/recurso. Ejemplo:
Accediendo hacia Samba a través de Nautilus
Se requiere que exista un servidor WINS en la red local, se tenga establecida la opción name resolve order en el archivo/etc/samba/smb.conf y que la opción hosts del archivo /etc/nsswitch.conf incluya wins.

Desde Windows.

Desde Windows deberá ser posible acceder sin problemas hacia cualquier servidor Samba, como si fuese hacia cualquier otro sistema con Windows.

Comentarios