¿Como compartir archivos mediante Samba en Linux?

A medida que avanzamos en nuestro camino sobre GNU/Linux se nos presentan determinadas situaciones en donde debemos satisfacer necesidades tales como poder compartir tal o cual directorio en nuestra red local. Esta tarea se denomina recursos compartidos y se basa principalmente en la configuración de un servidor que nos permita definir usuarios y escalas de privilegios, etc.

Algo de Historia
SAMBA es una 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 Server Message Block (o protocolo SMB). Este es algunas veces referido también como Common Internet File System (CIFS), LanManager o protocolo NetBIOS. Sirve como reemplazo total para Windows® NT, Warp®, NFS® or servidores Netware®.

Veamos las partes que componen el servidor Samba
Para el correcto funcionamiento de Samba en nuestro equipo vamos a necesitar los siguientes paquetes incluidos en la mayoría de las instalaciones: samba, samba-client y samba-common.

Si por alguna razón no disponemos de las fuentes de donde se instalo nuestra distribución podremos acceder a su sitio oficial y así descargar las fuentes de la mas reciente versión.

http://us1.samba.org/samba/

Configurando samba
La configuración de Samba como en la mayoría de las distribuciones GNU/Linux es mediante la edición de archivos de configuración, que en este caso se encontrara ubicado en el directorio “/etc/samba” (/etc/samba/smb.conf).

Cada uno de estos archivos cumple una función determinada:

smb.conf; este es el archivo principal donde definimos todo lo relacionado con el comportamiento de samba. Grupos de trabajo, Dominios, claves con referencia a Windows, directorios compartidos, archivos, impresoras, etc.

smbpasswd; es simplemente el archivo que agrupa a los usuarios. Cada usuario habilitado en samba tendrá una linea creada en este archivo, si no estuviera el usuario no tendría acceso al servidor.

Smbusers; este archivo es utilizado por el mismo servidor para su correcto funcionamiento por lo que hace falta realizar ninguna edición. Dentro tendrán los usuarios principales para que Samba funcione correctamente.

A configurar el archivo “smb.conf”
Cuando comencemos a editar el archivo nos encontraremos con una larga lista de configuraciones, lo primero que debemos saber es que cuando una linea de configuración comienza con el símbolo “#” solo estaremos en presencia de un comentario y si por el contrario la linea comienza con el símbolo “;” estaremos en presencia de una linea de configuración.
Salvado este comentario veamos un archivo típico.

Empezaremos por establecer el grupo de trabajo editando la línea workgroup, de este modo: este punto es muy importante, ya que de no ser llamado del mismo nombre en nuestra red no podremos visualizarlo en forma Óptima.

workgroup = WORKGROUP

Luego estableceremos, de acuerdo al fichero /etc/samba/lmhosts en la línea del parámetro netbios name:
netbios name = maquinalinux

A continuación definimos cierto nivel de seguridad especificando que rango de direcciones IP podrán acceder al servidor SAMBA, quitando el comentario y editando la línea hosts allow.
Si nuestra red consiste en la máquinas con dirección IP desde 192.168.0.1 hasta 192.168.0.254, el rango de direcciones IP será 192.168.1. y este permitirá el acceso solo a dichas máquinas. El punto al final de cada rango es necesario

Editamos la linea de ésta manera:

 hosts allow = 192.168.0. 127.

Si queremos tener que evitar el registro de Windows en todas las máquinas de la red local, debemos quitar el comentario a las siguientes lineas:

 encrypt passwords = Yes
smb passwd file = /etc/samba/smbpasswd

Solo resta configurar las impresoras y los directorios compartidos. Para tal fin, debemos añadir solo public = yes en la sección de impresoras del siguiente modo:

[printers]
comment = EL comentario que guste.
path = /var/spool/samba
printable = Yes
browseable = No
public = yes

Es el turno de configurar los directorios compartidos y esta configuración la encontraremos en la sección “share”.

[Identificación]
comment = Comentario
path = /cualquier/ruta/que/desee/compartir
guest ok = Yes
writable = yes
browseable = yes

¿Que quiere decir cada linea?
La identificación es muy simple de saberlo, esa linea es la que va a decirnos como se llamara nuestro recurso compartido en la red, “comment” es el comentario o descripción de cada recurso, “path” es la ruta que vamos a definir para compartir (ACLARACION, es muy importante que el directorio que vamos a compartir este creado con los permisos necesarios para compartirlo luego), “guest ok” es la linea que define si dejaremos que un usuario invitado pueda ingresar en el recurso compartido, “writable” es el parámetro que va definir si este recurso podrá ser accedido con permisos de escritura y por ultimo “browseable” esta linea es la que va definir la posibilidad de ser visualizado desde la red.

Estos son los parámetros mas básicos de cualquier share, luego podremos definir o quitar opciones según corresponda, vamos a brindar un ejemplo muy interesante.

“valid users” con esta opción podremos definir quien podrá acceder a el recurso compartido y la forma de utilizarlo es simple tan solo con ingresar usuario seguido de el símbolo “,” por cada nombre y sin espacio brindamos seguridad en el acceso a nuestro recurso. Mismo si queremos agruparlos por grupos ingresaremos el nombre del grupo precedido de el símbolo “@”. Y esto va ser tajante en cuanto a seguridad sin importar que dijimos writable = yes, porque de esta forma decimos que se podrá escribir pero solo los usuarios dentro de el parámetro valid users.

valid users = ariel,franco,juan,facundo

o bien el grupo completo de la siguiente forma:

valid users = @infosertec

Todos ustedes se preguntaran ahora como cargo los usuarios en samba y para esto vamos a definir algunas reglas.

  1. Para crear un usuario de Samba deberá ser primero usuario de sistema.
  2. Luego la clave que ingresamos en samba no tiene porque ser la misma que el usuario de sistema de mi equipo.
  3. La clave de samba deberá ser idéntica al usuario que desea ingresar de forma remota desde cualquier equipo de la red sin importar el sistema operativo del cliente.

Ahora si vamos a cargar usuarios y para esto solo debemos ejecutar el comando “smbpassd -a nombre_usuario” con este comando el sistema me consulta la clave nueva para ese usuario, lo activa y lo ingresa en el sistema.

Describamos los componentes de Samba:

nmbd
El demonio conocido del servicio de NetBIOS (nmbd) maneja las operaciones de búsqueda de NetBIOS. Un servidor correctamente configurado samba requiere por lo menos un proceso del nmbd para poder funcionar.

smbd
El demonio del servidor (smbd) maneja el acceso de los archivos y de la impresión. Una configuración apropiada requiere un mínimo de un proceso del smbd y adicional para cada cliente conectado con samba.

smb.conf
El archivo de la configuración samba contiene toda la información de la configuración dentro de  smb.conf para el smbd y el nmbd.

smbclient
El programa cliente de SMB permite a los usuarios de Linux tener acceso smbclient a otros servidores de SMB, tales como Windows NT y Windows 9x.

nmblookup
El programa de las operaciones de búsqueda de NMB permite a usuarios preguntar los servidores del nmblookup para los nombres registrados de NetBIOS.

smbstatus
Los administradores utilizan el comando del estado de SMB al smbstatus para observar la información sobre el servidor de samba dentro sistema, incluyendo quién está teniendo acceso actualmente o bien que comparte.

smbprint
Un shell script para imprimir a los sistemas de Windows del smbprint Linux.

smbtar
Un shell script para sostener los sistemas de Windows debajo de Linux smbtar.

Realizadas todas las configuraciones anteriores, solo resta inicializar el daemon correspondiente a fin de que cargue los nuevos parámetros configurados. Si iniciamos SAMBA por primera vez ejecutamos lo siguiente:

/etc/rc.d/init.d/smb start

SI vamos a reiniciar el servicio, lo siguiente:

/etc/rc.d/init.d/smb restart

Terminando con esta primera parte del articulo nos aseguramos de que Samba inicia automáticamente cada vez que nuestro equipo vuelva a comenzar su funcionamiento, y esto lo logramos según nuestra distribución desde una consola con el siguiente comando:

/sbin/chkconfig –add smb

CONCLUSION. En este manual vimos como configurar básicamente samba además de las partes que lo componen, algo de seguridad.
Espero sus comentarios.

Ariel M. Corgatelli

3 Responses to “¿Como compartir archivos mediante Samba en Linux?”

  1. Esta muy buena la info; seria bueno tambien hacer una guia paso a paso, de como conectar una pc con linux dentro de un dominio Window$ NT. O sea dentro de una red corportativa.

    saludos…

  2. Hice todo lo que comentas en esta especie de “tutorial”, pero cuando voy a la máquina que tiene Windows…no ve a la de linux y no tengo internet en ella…¿cómo se hace?
    Tampoco la Linux ve a la Windows…esto es un dolor de cabeza…he seguido variados tutoriales pero con ninguno lo he conseguido…¡uf!

    Apoyo a Luis en lo de una guía paso a paso: en mi caso, para conectar una pc Windows con XP con una máquina Linux con Mandriva 2007.1 PWP de 64 bits con conexión a internet…

    Saludos

  3. yo tengo instalado samba en centos 5 mi problema es que veo la carpeta compartida desde windows pero no puedo ingresar a la carpeta le agradeceria su ayuda

Discussion Area - Leave a Comment