[lang_es]Samba es una herramienta GPL de Linux que nos permite compartir carpetas y/o recursos de nuestro servidor Linux para redes basadas en “grupos de trabajo” de MS Windows(r). Para muchos de ustedes puede que se trate de una trivialidad, pero dado que hay gente que no lo sabe, aquí les va una breve reseña sobre como compartir recursos desde mi Linux para una red Windows(r).

Básicamente es muy sencilla de configurar, al menos en un nivel básico, por ejemplo, compartir directorios personales de cada usuario de la red, una carpeta compartida común a todos, una lectora de CD en el servidor o impresoras. Si nos pusieramos exquisitos, hasta podríamos configurar nuestro Samba para que emulara un PDC(Controlador Primario de Dominio) de Microsoft Windows NT(r).[/lang_es][lang_en] Samba is a GPL Linux tool for sharing folders and/or resources of our box(Linux) to MS Windows(r) workgroups based networks. Most linux users already know how to get Samba to work, but, as there are lots of people who don’t, here it goes a very simple set of instructions to share your folders on the network.


A basic setup is very simple to achieve, lets say, sharing users personal folders, a common shared folder for all users, a CD/DVD reader o printers. If it’s needed, you can set Samba up to work as a MS Windows NT(r) PDC(Primiary Domain Controller).[/lang_en]

[lang_es]Pero en éste caso, nos concentraremos en compartir recursos y directorios basandonos en los usuarios del sistema. Para el caso, simularemos una red local que trabajará sobre un grupo de trabajo llamado “demo_red”.

Para comenzar necesitaremos instalar a nuestro Linux los siguientes paquetes:[/lang_es][lang_en]But, here we will focus in a simple task. How to share resources and folders, based on system users. For the example, we’ll simulate a local area network with a workgroup called “demo_lan”.

These are the Linux packages needed for this task:[/lang_en]

samba [lang_es]o[/lang_es][lang_en]or[/lang_en] samba-commons

[lang_es]Si eres un usuario Debian: apt-get install samba o apt-get install samba-common[/lang_es][lang_en] If you are a Debianuser: apt-get install samba or apt-get install samba-common[/lang_en]

[lang_es]La diferencia entre estos paquetes es que el primero es el server, mientras que el segundo es el suite completo de herramientas de servidor y cliente.[/lang_es][lang_en]The difference between these packages is that the first one contains the Samba server, and the second one, contains the complete Samba tool kit(Server and Client tools).[/lang_en]

[lang_es]Una vez terminada la instalación del paquete, debemos configurar el servicio. Para eso hay que editar el archivo “smb.conf” que está en “/etc“.[/lang_es][lang_en]Once installed both packages, we must get the service set up. To do so, we must edit the file named after “smb.conf” placed at “/etc“.[/lang_en]

vi /etc/samba/smb.conf

[lang_es]Para hacer más sencillo el proceso de configuración, y eliminado varias lineas para dejar exclusivamente las necesarias para cumplir nuestro objetivo:[/lang_es][lang_en]To keep this example simple, I remove several lines from config file, leaving just the necessary ones to achieve our goal:[/lang_en]

[lang_es]Nota: Los comentarios son precedidos por ‘#‘ o ‘;‘[/lang_es][lang_en]Note: Comments are preceded by ‘#‘ or ‘;‘[/lang_en]

;[lang_es]Mi primer Archivo de Configuración de Samba[/lang_es][lang_en]My first Samba Config file[/lang_en]
[global]
server string = Linux Box [lang_es]corriendo[/lang_es][lang_en]running[/lang_en] Samba
workgroup = demo_[lang_es]red[/lang_es][lang_en]lan[/lang_en]
encrypt passwords = yes
;
[prueba]
path = /home/[lang_es]usuario/prueba[/lang_es][lang_en]user/test[/lang_en]
read only = no
guest ok = yes
;
[prueba2]
path = /home/[lang_es]usuario/prueba2[/lang_es][lang_en]user/test2[/lang_en]
read only = yes
guest ok = yes

[lang_es]NOTA: Reemplacen “usuario” por el nombre de un usuario válido. Además deberán crear los directorios prueba y prueba2 o seleccionar directorios ya existentes en el “home” seleccionado.[/lang_es][lang_en]NOTE:for this example to work, you must replace “user” with an existing user in your system. You must also create folders test and test2 or choose existing folders at selected “home“.[/lang_en]

[lang_es]Aquí les va una configuración un poco más completa y comentada del archivo de configuración de Samba. De todas formas, la versión anterior es suficiente para realizar una prueba rápida![/lang_es][lang_en]Here it goes a more detailed version of Samba configuration file. Anyway, previous version will do the task for a sweep test![/lang_en]

#
#======================= Configuraciones Globales =======================
#
[global]
## Nombre del grupo de trabajo ###
# no debe contener espacios ni caracteres especiales.
workgroup = demo_red
;
## Nombre que identificará al server (Descriptivo)
# Esto pone: Servidor Dilbert (Samba Version 3.0.24)
# %h- Nombre del Host
# %v- Versión
server string = Servidor %h (Samba %v)
;
# Decmimos al demonio nmbd que no busque nombres NetBios a través de los DNS.
dns proxy = no
;
#### Debugging/Controles ####
;
## Le decimos al Samba que cree un archivo de registro por cada estación que se conecta
# %m- Machine
log file = /var/log/samba/log.%m
;
# Se pone un tope(KB) para los archivos de registro
max log size = 1000
;
####### Autenticación de usuarios #######
;
# Exigimos que para acceder a los recursos del servidor se deba tener una cuenta en el mismo.
security = user
;
# Esta opción debe estar en 'yes', ya que Windows manda las claves encriptadas.
encrypt passwords = true
;
# Debemos decirle a Samba dónde están las claves!
passdb backend = tdbsam
;
obey pam restrictions = yes
;
# Cuenta para invitados. Por defecto se deja comentada. No se permiten invitados.
; guest account = nobody
;
# Lista de usuarios NO habilitados a conectarse a los recursos
invalid users = root
;
########## Printing ##########
;
# carga la lista de impresoras en lugar de tener que definir una a una.
load printers = yes
;
# lpr(ng) Esto se cambia solo si se deseara especificar un printcap especial
; printing = bsd
; printcap name = /etc/printcap
;
# CUPS printing. Ver cupsaddsmb(8) del paquete
# cupsys-client
; printing = cups
; printcap name = cups
;
# Cuando se usa [print$] se puede decir qué usuarios/grupos puede agregar controladores
# de impresoras o administrar las colas de impresión.
# @lpadmin- grupo de administradores de impresión
# Por defecto: Solo root
; printer admin = @lpadmin
;
############ Generales ############
;
# Podríamos tener una config. de Samba por cada terminal!
# basta con descomentar la linea siguiente...
# %m- Maquina (Corresponde al nombre NetBios de la estación que se conecta)
; include = /home/samba/etc/smb.conf.%m
;
# Mejora la performance de la red!
# Ver smb.conf(5) and /usr/share/doc/samba-doc/htmldocs/speed.html
SO_RCVBUF=8192 SO_SNDBUF=8192
socket options = TCP_NODELAY
;
#======================= Recursos compartidos =======================
;
# Compartimos el "home" de cada usuario
# No apareceran en la lista de recursos compartidos pero
# se los podrá conectar mediante servidorusuario
# para que aparezcan listados modificar la opción 'browseable' a 'yes'
[homes]
comment = Carpetas personales
browseable = no
;
# Nos aseguramos que SOLO el usuario pueda conectarse a su carpeta personal
valid users = %S
;
# Hacemos que sea lectura/escritura (Por defecto es solo lectura)
writable = yes
;
# Máscara para creación de archivos (600) solo legible por propietario
# Si se desea que los archivos sean modificados por el grupo
# el permiso debería ser 0664.
create mask = 0600
;
# Máscara para creación de directorios (700) solo accesibles por propietario
# Si se desea que los directorios sean accedidos por el grupo
# el permiso debería ser 0755.
directory mask = 0700
;
[printers]
comment = Todas las impresoras
browseable = no
path = /tmp
printable = yes
public = no
writable = no
create mode = 0700
;
# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
# Administración remota de controladores de impresora.
# Reemplazar @ntadmin por el nombre de un grupo al que pertenezcan sus usuarios.
write list = root, @ntadmin
;
# Compartiendo el CD-ROM.
[cdrom]
comment = Lectora de CDs
writable = no
locking = no
path = /cdrom
public = yes
# Debe agregarse una linea como esta en su /etc/fstab
#
# /dev/hdc /cdrom iso9660 defaults, noauto, ro, user 0 0
#
# Estas lineas son las que montan/desmontan la unidad cuando hace falta
preexec = /bin/mount /cdrom
postexec = /bin/umount /cdrom
;
# Compartimos una carpeta común a todos
[compartida]
comment = Carpeta compartida
browseable = yes
path = /home/compartida
public = yes
writable = yes
create mask = 0777
directory mask = 0777


[lang_es]Una vez hecho esto, debemos reiniciar(como root) el Samba para que tome las nuevas configuraciones.[/lang_es][lang_en]Once we’re done with configuration, we must restart(or start) as root Samba service for it to read the new setup.[/lang_en]

/etc/init.d/samba restart

[lang_es]Dado que activamos la opción que exige un usuario del sistema para conectarse a los recursos, deberemos crear usuarios en nuestro sistema:[/lang_es][lang_en]As we declare that only system users can connect to our resources, we must creare a system user(if not exist):[/lang_en]

adduser pepe

[lang_es]Y luego, asignarle una clave para el samba[/lang_es][lang_en]and assign him a password for Samba service[/lang_en]:

smbpasswd -a pepe

[lang_es]Esto pedira la contraseña para el usuario pepe, la que deberá ser ingresada dos veces para poder confirmar su ingreso.[/lang_es][lang_en]This will ask for a password for user pepe, which must be entered twice to confirm.[/lang_en]

[lang_es]Listo… Pepe ya podrá conectarse desde su terminal de windows al servidor como si se tratara de un Windows más en la red! Es importante aclarar que para que los Windows puedan acceder a los recursos compartidos, deben tener instalado el protocolo TCP/IP, el Cliente para redes Windows, y lo más importante… que no se haya presionado “[Esc]” cuando solicitaba inicio de sesión. ;)[/lang_es][lang_en]That’s it… Pepe will be able to connect to his personal folder at our Linux box as if it is other Windows based machine. For this to work, Windows host must have installed TCP/IP protocol, Microsoft Windows Network Client, and last, but no less… User should not press “[Esc]” key when asked to initiate session. ;)[/lang_en]

[lang_es]Si estás buscando algo más potente… te recomiendo: http://es.tldp.org/Manuales-LuCAS/USANDO-SAMBA/usando-samba-html/[/lang_es][lang_en]If you are looking for something more specialized, I recommend you visit: http://www.tldp.org/LDP/lame/LAME/linux-admin-made-easy/samba-file-and-print.html[/lang_en]

Average Rating: 4.6 out of 5 based on 230 user reviews.

Published by

Gustavo

...not much to tell :P

20 thoughts on “”

  1. umm… puede ser… la verdad es que no recuerdo exactamente el comportamiento del Win, pero lo lógico sería que si no coincidieran las claves de acceso, te la pidiera al momento de intentar acceder al recurso compartido.

    Otra cosa que puede estar pasando es que te hayas olvidado de crear el usuario para el samba en el sistema linux, recuerda que eso es aparte de la creación/existencia del usuario del sistema. Por las dudas te paso el comando que debes ejecutar en el server:

    # smbpasswd -a nombre_usuario

    Esto agregará a samba el usuario y lo sincronizará con el usuario del sistema.

  2. Hola. Yo segui los pasos y logro conectarme de mi debian a mi equipo windows, pero cuando quiero acceder desde windows a linux no me deja, me dice que no tengo permisos.
    Lo que se me ocurre que puede llegar a estar pasando es que en mi inicio de sesion de XP no tengo contraseña para entrar, sino que entra directamente.

  3. una pregunta, como instalo el samba en suses 10 ?? me puden dar el comando por fa… o los pasos necesarios…

    gracias.

  4. Estimado “Perro”: Estuve navegando por toda la red buscando la instalación de SAMBA por aproximadamente dosa semanas, pero soy tan newbie con esto que nomás no me funcionaron las otras tentativas, y con la primera parte de tu tutorial a la primera funcionó… MIL GRACIAS COMPAÑERO.

  5. dejame replantearte mi problema… yo tngo una red heterogenea, con un dominio en un servidor con debian sarge y equipos en windows xp, suse 10.x y debian 4.0, cuando comparto un directorio con suse lo veo perfectamente de cuelquier equipo incluso sin autentificacion, cuando comparto un directorio con windows igual, pero cuando lo hago con debian me pide autentificacion, he intenado la nomenclatura UNC, es decir colocando nombredeequipo\usuario y la contraseña, tambien [email protected], tambien [email protected], etc. etc. n q m estoy equivocando?

  6. Pues nada… debería funcionarte sin problemas! Si desde un linux te estás conectando vía samba es el mismo sistema.

    El usuario debería ir solo, sin el nombre de la máquina, y si el user/pass de tu Windows(r) es igual al creado en el Samba server, ni siquiera hace falta volver a identificarse.

    Puedes probar haciendo eso… crea un user en samba que se llame igual que tu user del cliente y ponle la misma password.

    Debes tener en cuenta que los nombres de usuario no debería contener espacios en blanco ni chars especiales.

  7. buenas….

    hice todo lo q explicas n tu post, y desde otra maquina con debian me conecto perfectamente, pero cuando inteto conectarme desde una maquina con window$, me sale una ventana pidiendome usuario y contraseña. de que manera debo colocar el usuario? porq si coloco el nombre solo no lo reconoce, intente colocando netbios, ip, y nada… que hago???

  8. Viejo muxas gracias por sabios consejos y ayuda, tengo una pequeña red en mi ksa y vecina y me ha funcionado perfectamente. yo utilizo debian :) muchas gracias !!

  9. Jorge, el tema ahí es que probablemente el usuario de tu windows no esté declarado en el sistema de linux.

    te recomiendo 2 cosas… o que compartas sin restricciones o que crees tu user de Win en el linux:

    adduser pepe
    smbpasswd -a pepe

    supongo que viene por ese lado… de lo contrario no entendí…

  10. Holas,porfis dame una manito con este problem, en la red windows en mi trabajo se nos ocurrio instalar linux en una de ellas, le instalamos el mandriva 10 , ahora deseo entrar a carpetas compartoidas en este PC_mandriva a traves de mi PC_Windows, (con win xp SP2) lo unico k hice fue editar el smb.config con el ejemplo basico k pusiste en tu web,lo unico k consegui fue ver desde mi PC_win en mi explorador el grupode trabajo,pero cuando e hago doble click se cuelga un rataaaazo y me sale un mensaje de error, diciendo k probablemente no tengo derechos, como t digo no hice nada mas k editar el smb.config, soy novato en esto de linux porfis ayudame, gracias de antemano

  11. Hey… José… or Emilio :? anyway, if you want me to help you install Samba, you must give more info!

    Which distribution are you using? I assume you are not using Debian nor any Debian based distro, cause the instructions to install samba are “pasted” at this post!

    apt-get install samba or apt-get install samba-common

    as root and you’re done!

  12. hi mi name is emilio. well i have a problem because i want to make samba but i am a novato using linux.
    can you help me how to install samba please

  13. Hola Gustavo,
    Se que debe ser un descuido por respuesta apurada no mas pero hay un error.

    Ahi desde win deberías usar nomenclatura UNC o sea usando retro barras \\IP_de_TU_linux\recurso_compartido

    y aca

    seria mount -t smbfs //IP_de_TU_linux/recurso_compartido -o username=usuario /directorio/directorio

    para especificar nombre de usuario, después nos pedirá clave, se le puede pasar en la misma orden pero no queda prolijamente seguro y al final el directorio donde queremos montarlo yo crearia una carpeta bajo /mnt

    Saludos,

  14. Roberto, este habilita a que tu Linux comparta sus recursos como si fuera un Windows(r) más en la red.

    Desde la navegación por la red en windows lo veras como un equipo más con windows.

    Si deseas acceder directamente simplemente puedes hacer:

    Desde Windows(r) en el explorador:

    //IP_de_TU_linux/recurso_compartido

    Desde Linux:
    usas el comando smbmont o mount -t smbfs

    smbmount \\IP_de_TU_linux\recurso_compartido \dir_para_montar -o opciones
    o
    mount -t smbfs -o username=usuario //IP_de_TU_linux/recurso_compartido

    Si usas KDE puedes poner desde el Konqueror:
    smb://[email protected]_de_TU_linux/recurso_compartido

    En cualquiera de los ejemplos puedes reemplazar IP_de_TU_linux por el nombre NetBios de tu máquina:
    smb://[email protected]/recurso_compartido

  15. Hola, quisiera saber si este manual vale tanto para acceder desde clientes windows como para acceder desde clientes linux..
    Muchas gracias y un cordial saludo

Leave a Reply

Your email address will not be published. Required fields are marked *