Instalando Samba en Fedora Core 5 / Core 6 para compartir archivos e impresoras en redes Windows

Samba es un programa de código abierto que permite compartir archivos e impresoras desde una computadora Linux hacia una computadora con MS Windows, como si fuera una mas de ella, lo cual es muy util ya que podemos tener un servidor de archivos y de impresión basado en Linux colocado en una red donde se conectan PC con Windows.

La página oficial de Samba la puedes encontrar aquí.

Si tienes Ubuntu o Debian instalado puedes encontrar el tutorial aquí.

Lo primero que vamos a hacer es instalar Samba en nuestra computadora con Fedora, para esto debes tener privilegios de root, ejecutamos el siguiente comando en el shell:

yum install samba

El archivo de configuración de Samba lo podemos encontrar en /etc/samba/smb.cof, vamos a realizar una copia de respaldo de este archivo:

cp -p /etc/samba/smb.conf /etc/samba/smb_29082007_copia.conf

Siempre es bueno realizar una copia de seguridad a los archivos de configuración en caso de que cometamos algún error podamos volver a lo que teníamos, ademas yo siempre le agrego la fecha para saber cuando hice el respaldo.

Ahora editamos el archivo de configuración de samba. (Puedes utilizar el editor de tu preferencia vim, nano, gedit, kate… etc.)

gedit /etc/samba/smb.conf

En el archivo de configuración cambia donde dice workgroup = MSHOME (puede ser distinto en tu caso) a:

workgroup = MIGRUPO

Donde MIGRUPO es el nombre del grupo de trabajo de MS Windows o el nombre de dominio, de donde será parte el servidor Samba. Tienes que configurar el mismo grupo de trabajo en tus computadoras Windows, esto lo puedes hacer en Panel de control>Sistema>Nombre de Equipo>Cambiar Nombre.

Si quieres tambien puedes cambiar la linea donde dice server string esto es simplemente la descripción que verá tu grupo del servidor puedes colocar algo como:

server string = %h Servidor de archivos

%h lo que hace es imprimir el nombre de host de tu servidor.

Guarda los cambios y sigamos.

Como crear, editar o eliminar usuarios en Samba

Los usuarios que queremos que tengan acceso al servidor Samba deben estar creados como usuarios en nuestro servidor linux, podemos crear un grupo samba y agregar a ese grupo todos los usuarios que tendrán acceso al servidor samba:

Para agregar un usuario a linux podemos utilizar el comando:

adduser nombre_usuario

Nos pedira la clave que queremos utilizar para ese usuario y algunos datos que son opcionales, luego podemos cambiar sus privilegios.

Supongamos que tenemos un usuarios ya creado llamado jose y que lo queremos agregar a los usuarios de Samba, para esto ejecutamos el siguiente comando:

sudo smbpasswd -a jose

Nos aparecerá algo como:

smbpasswd -a jose
 New SMB password:
 Retype new SMB password:
 Added user jose.

Colocamos la clave que queremos que tenga ese usuario para ingresar al servidor Samba, la clave puede ser distinta a la clave que tiene el usuario para ingresar a Linux.

Vamos a crear un nuevo archivo donde estarán todos los usuarios autorizados para conectarse al Servidor de Samba, para esto ejecutamos:

gedit /etc/samba/smbusers

En el nuevo archivo copiamos la siguiente línea:

nombre_enlinux = "Nombre en Windows"

Donde nombre_enlinux es el nombre del usuario que tenemos en linux en este caso jose y Nombre en Windows es el nombre del usuario de red en Windows. Tenemos que agregar una nueva línea por cada usuario que creemos para Samba.

Para editar un usuario ejecutamos:

smbpasswd -a nombre_usuario

Para borrar un usuario ejecutamos:

smbpasswd -x nombre_usuario

Ahora que ya tenemos a los usuarios creados procedamos a ver como se compaten archivos y directorios.

Compartiendo Archivos con Samba

Vamos a modificar el archivo de configuración de Samba:

gedit /etc/samba/smb.conf

Busca la línea que dice:

;   security = user

Y la modificamos por:

security = user
 username map = /etc/samba/smbusers

Con esto lo que estamos haciendo es diciendole a Samba que vamos a autenticar por usuario y donde está la lista de los usuarios permitidos que fue la que creamos anteriormente.

Para darle acceso a los usuario a sus respectivos directorios home o personales, hacemos lo siguiente:

Buscamos las línea donde dice

;[homes]
 ; comment = Home Directories;
 ;browseable = no
 ;valid users = %S
 ;writable = no

Y le quitamos el ; para descomentarlos, y en writable le cambiamos no por yes para que el usuario pueda escribir en el directorio.

Siempre que cambiemos la configuración del archivo smb.conf debemos ejecutar el siguiente comando:

testparm

lo que hace este parámetro es verificar que los parámetros del archivo smb.conf estén correctos, luego que nos diga que todo esta bien ejecutamos:

service smb restart

para aplicar los cambios.

Ahora si quieremos compartir un directorio que llamaremos grupo hacemos lo siguiente, primero creamos la carpeta que queremos compartir si ya no la habíamos creado:

mkdir /home/grupo
 chmod 777 /home/grupo

La puedes crear donde quieras. Ahora vamos a modificar el archivo de smb.conf, voy a suponer que ya modificaste la parte de security y agregaste /etc/samba/smbusers a este archivo y que ya sabes como abrirlo para editarlo de ahora en adelante. Agregamos la siguientes lineas al final del archivo:

[Grupo]
 comment = Archivos Compartidos
 path = /home/grupo
 public = yes
 writable = yes
 create mask = 0700
 directory mask = 0700
 force user = nobody
 force group = nogroup

Analicemos esta estructura, comment simplemente es un comentario de lo que es la carpeta puedes colocar lo que quieras, path por supuesto es donde esta la carpeta que queremos compartir, public es si quieres hacer esta carpeta disponible publicamente o no, para cambiarlo simplemente coloca no, writable permite definir si se puede escribir en la carpeta o no, create mask y directory mask es la mascara con la que se crearan los archivos (es decir que privilegios tendrán los archivos y directorios creados) si quieras que puedan hacer cualquier acción en la carpeta coloca 0777 en ambas, force group y force user es para forzar que solo un grupo específico o usuario se pueda conectar a esta carpeta.

Si además queremos que solo un grupo de usuarios pueda accesar a la carpeta agregamos esta línea después de writable:

valid users = nombre_usuario1 nombre_usuario2

Donde puedes agregar los usuarios que quieras que tengan acceso.

Luego de que termines de agregar las carpetas que quieras compartir Guarda el archivo y probamos el archivo smb.conf y reiniciamos el servidor de Samba:

testparm
 service smb restart

Compartiendo Impresoras

Voy a suponer que ya tienes una impresora conectada y funcionado en tu PC Linux.

Compartir impresoras en Samba es muy sencillo simplemente busca estas dos líneas en el archivo /etc/samba/smb.conf (Recuerda hacer una copia de respaldo) :

 ...
 # printing = cups
 # printcap name = cups
 ...

Y descomentalas:

...
 printing = cups
 printcap name = cups
 ...

Guarda el archivo cimprueba los parámetros de smb.conf y reinicia el servidor de Samba ejecutando:

testparm
 service smb restart

Y eso es todo, ya puedes ir a tu PC Windows y buscar en tu grupo de trabajo las carpetas compartidas de Linux en Samba y además agregar la impresora.

Espero que les haya servido este tutorial, más adelante publicaré un tutorial acerca de como configurar un servidor WINS con Samba.

El manual oficial de Samba lo pueden conseguir aquí.

Como siempre espero sus comentarios

Saludos

Olivers

Respuesta de los Usuarios ( 84 )

  1. Gabo dijo:

    Oliver gracias por todo, una pregunta mas, las computadoras con XP entran muy bien al servidor con fedora, pero las computadoras con windows vista me dicen que no tengo permiso para ingreesar, y le estoy ingresando el mismo usuario y el mismo pasword de identificación

  2. Victor dijo:

    Hola te queria agradecer y feicitar por tu tutorial si puedo compartir carpetas atravez de una pc con windows XP que tengo conectada atravez de interntet, pero intenté compartir archivos mediante una laptop por mdio de red inalambrica y windows vista home y no me adejado compartir.

    Te muestro mi si siguiete configuración:

    [global]
    server string = Samba Server Version %v
    passdb backend = tdbsam
    username map = /etc/samba/smbusers
    log file = /var/log/samba/log.%m
    max log size = 50
    printcap name = cups
    cups options = raw

    [homes]
    comment = Home Directories
    path = /home/kill/Programas/
    valid users = %S
    read only = No

    [printers]
    comment = All Printers
    path = /var/spool/samba/
    printable = Yes
    browseable = No

    [Grupo]
    comment = Archivos Compartidos
    path = /home/grupo/
    force user = nobody
    force group = nogroup
    read only = No
    create mask = 0777
    directory mask = 0777
    guest ok = Yes

    en donde en configure la lap con con el mismo grupo grupo de trabajo llamado workgroup, aquí esta mi agregué el los usuaios /etc/samba/smbuser:

    usuario = familia1, VCO
    #donde familia1 es el nombre de la lap.

    Espero que me puedas echar una mano con esto. ¡Saludos!

  3. Olivers dijo:

    Hola Victor, si te funcionó con Windows XP y no con Windows Vista el problema no está en la configuración de Samba sino más bien en el Windows Vista, fijate que estés permitiendo la conexión remota al Windows Vista, que el firewall este permitiendo la conexión y que estén dentro del mismo grupo.

    Entre Windows XP y Windows Vista tienes algún problema?

    Saludos
    Olivers

    • anonimo dijo:

      Lo que pasa es que en win vista y win7 tienes que activar las casillas de directivas de seguridad local que se en cuentran en panel de control herramientas administrativas directivas de seguridad local opcion de seguridad y donde dice autentificacion de lan manage seleccionamos nl y ntlm y listo podras entrar desde win vista y win 7

  4. Javier dijo:

    Hola q tal ya segui todo al pie de la letra pero esta instruccion no funciona:
    /etc/init.d/samba restart
    me dice q el fichero o directorio no existe

  5. Olivers dijo:

    Hola Javier, estas haciendo esta operacion como root?

    Prueba

    service smb start
    service smb stop
    service smb restart

    Saludos
    Olivers

  6. Silver dijo:

    Emm muy buen tutorial…
    Una duda Esto tambien funciona para CentOS 5??
    pregunto porque que son muy similares

  7. Olivers dijo:

    Hola Silver si debería funcionar igual igual prueba y cualquier duda puedes preguntar por aca

    Saludos
    Olivers

  8. Flower dijo:

    Estoy estudiando linux y estamos trabajando con fedora 8 , quiero compartir archivos e realizado todos los pasos antes mencionados , pero al hacer \\la ip de mi Servidor Samba Linux veo mi home Directory y la carpeta que estoy compartiendo pero no puedo ingresar a ellas ya le di permisos con el comando chmod 777 pero igual, en adicion en mis sitios de red de mis pcs windows no veo a mi servidor linux, talves e obviado alguna parte , podrían apoyarme …SOS..

  9. Olivers dijo:

    Flower, puede ser muchas cosas.

    1. Revisa el archivo de smbusers y verifica que:

    nombre_enlinux = “Nombre en Windows”

    2. En el archivo de configuracion de Samba asegurate que diga en la carpeta que compartes:

    browseable = yes

    3. Verifica que hayas reiniciado el servidor Samba despues de que hagas los cambios

    testparm
    service smb restart

    Si después de esto no puedes acceder a la carpeta vuelve a escribir.

    Saludos
    Olivers

  10. diego dijo:

    Solo una pregunta, funcionaria en fedora 10¿?

    gracias

  11. Olivers dijo:

    Hola Diego si si funciona en Fedora 10

    Saludos
    Olivers

  12. Hairo dijo:

    He visto todas las formas para compartir archivos e impresoras desde linux hacia windows, pero no he visto lo contrario…

    como seria si tengo la impresora conectada a windows?

    Como haria para ver la impresora en linux (tengo fedora 12) estando esta conectada en un pc windows.

    Es muy importante para mi….Gracias

    hairosv@hotmail.com

  13. Olivers dijo:

    Hola Hairo, es muy sencillo

    1. Primero asegurate que tienes instalado el cliente de Samba

    yum install samba-client

    2. La impresora debe estar compartida en Windows

    Luego simplemente ve al menú de Sistema>Administración>Impresión ahí te aparecerá un diálogo presionas sobre Añadir en el siguiente cuadro puedes probar buscando una impresora en red y si esto no te funciona coloca la dirección IP o la dirección con la que compartes la impresora.

    Con esto ya deberías poder añadir la impresora que compartes en Windows

    Para ver carpetas compartidas en Windows las deberías ver en el menú de Lugares>Red

    Espero que te sea de utilidad

    Saludos
    Olivers

    • Hairo dijo:

      Todo bien Oliver, hasta el momento en que mando una impresion, me pide nombre de usuario y clave la cual no se porque mi red esta en fuera de dominio (grupo de trabajo) cada quien entra con su clave.

      No obstante en la pcwin donde está la impresora instala utilizo la misma clave que tiene dicha pc para entrar y aun asi no puedo conectarme a la impresora.

      Lo unico que puedo hacer es instalarla en la pcFedora, pero para imprimir desde dicha pc me pide la bendita clave esa….

  14. Andres dijo:

    Hola, primero que todo, muy buen tutorial;

    tengo el siguiente problema, he configurado una carpeta para compartir archivos, la cual debe ser mapeada en varios equipos con windows, y tengo algunas dudas:

    - es necesario una cuenta por acceso? – me explico, pueden conectarse de 10 maquinas distintas con un mismo usuario/password?

    - puede una cuenta guest hacer lo recien planteado?

    He realizado pruebas con Ubuntu 10.04, CentOS 5.0, y ahora Fedora Core 13, y he tenido problemas para realizar la configuracion de usuarios, ahora en FC13 veo la carpeta en la red, pero no puedo acceder a las sub carpetas, he creado un usuario y password en smb para acceder a ella, les dejo la configuracion de la carpeta:

    [compartido]
    comment = ficheros
    path = /home/administrador/compartido
    read only = no
    browseable = yes
    guest ok = yes
    create mask = 0777
    directory mask = 0777

    la seguridad esta por usuario.

    Agradezco cualquier respuesta de antemano

  15. Luis dijo:

    Hola amigos,
    tengo un problema y espero me puedan ayudar.
    tengo un equipo con fedora 13 y estoy tratando de configurarlo para que se vea
    en la red con los demas equipos con windows, segui todos los pasos que aparecen en el tutorial pero no me resulta, cuando voy al icono red me dice “buscando red de windows” luego me arroja un mensaje “no se pudo montar el lugar, fallo al obtener la lista de comparticion del servidor”.
    espero me puedan ayudar ya que necesito subir pronto este equipo a la red.

    Saludos.

  16. Carlos dijo:

    Hola:

    Ante todo felicidades por el tutorial.

    Tengo una consulta y planteo primero el escenario.

    Tengo un servidor Samba que estoy preparando, todo me funciona correctamente, los clientes se concetan desde equipos con windows xp o 7, pero ahora quiero que cuando se conecten por primera vez a samba, ellos cambien su password por la que deseen, o sea, yo pongo una password inicial y ellos al conectarse les diga que la password ha espirado o algo así y que la cambien. ¿ Es posible ?

    Gracias por adelantado.

    • Olivers dijo:

      Hola Carlos, gracias por tu comentario.

      En cuanto a tu consulta, con la configuración que está aquí no puedes hacer lo que pides ya que necesariamente los usuarios se tendrían que conectar con sus usuarios de Linux (via consola) y cambiar su clave ahí.

      Si tienes muchos usuarios y quieres ahorrarte esto puedes utilizar un Controlador de Dominio (Domain Controler) para la autenticación, puedes utilizar LDAP, NT, Active Directory e inclusive utilizar Samba como un PDC. Estos servicios permiten que la autenticación se realice de manera centralizada en la red y Samba soporta cualquiera de estos métodos.

      Con esto podrías establecer políticas de contraseñas y sólo tendrías una contraseña para entrar a tu dominio y a Samba.

      Espero que te haya quedado un poco más claro, cualquier duda vuelve a escribir

      Saludos
      Olivers

  17. Simón dijo:

    Hola amigos muy bueno toda la información, pero quisiera que me ayuden. Como hago para configurar samba o que variable debería colocar para llevar el registro de paginas impresas por medio del servidor cups, he estado viendo el page_log pero no me incrementa, solo me aparece el 1 por defecto y quisiera llevar un registro de paginas impresas. les agradezco gracias.

    • Olivers dijo:

      Hola Simón, el contador de estadísticas del CUPS no es muy bueno, es dificil de configurar y no funciona con todas las impresoras.

      Hay una alternativa llamada Pykota que es un manejador de estadísticas y cuotas para CUPS muy poderoso y aunque para descargarse el paquete para las distintas distribuciones hay que pagar se puede descargar totalmente gratis por Subversion puedes seguir las instrucciones en la propia página de pykota en el link que te coloco aquí donde dice latest development release

      http://www.pykota.com/software/pykota/download/

      Espero que te sirva para lo que quieres

      Saludos

  18. Simón dijo:

    Hola Olivers, muchas gracias por tu ayuda de verdad me aclaro mucho el camino y soluciono mis dudas, tambien me sirvio en Debian Gnu/Linux, lo cual pude encontrar otra aplicacion sencilla de instalar pero con menos bondades y a la vez optima y se llama jazmín. Hay es cuando digo que somos una familia unidos por una misma causa en el software Libre.

  19. juan dijo:

    Hola Olivers tengo un problema con el Samba instalado y funcionando…

    Cuando un perfil movil cual

  20. Esars dijo:

    Hola que tal excelente tutorial pero tengo un problemilla

    En esta parte de aqui
    //Ahora editamos el archivo de configuración de samba. (Puedes utilizar el editor de tu preferencia vim, nano, gedit, kate… etc.)

    gedit /etc/samba/smb.conf

    En el archivo de configuración cambia donde dice workgroup = MSHOME (puede ser distinto en tu caso) a:

    workgroup = MIGRUPO

    Donde MIGRUPO es el nombre del grupo de trabajo de MS Windows o el nombre de dominio, de donde será parte el servidor Samba. Tienes que configurar el mismo grupo de trabajo en tus computadoras Windows, esto lo puedes hacer en Panel de control>Sistema>Nombre de Equipo>Cambiar Nombre. Si quieres tambien puedes cambiar la linea donde dice server string esto es simplemente la descripción que verá tu grupo del servidor puedes colocar algo como:

    server string = %h Servidor de archivos

    %h lo que hace es imprimir el nombre de host de tu servidor. Guarda los cambios y sigamos.
    //
    La parte del comando gedit no me abre cuando pongo como root en la consola, si lo abro como usuario normal me funciona pero no me deja guardar los cambios…

    Que puedo hacer en ese caso…

    • Olivers dijo:

      Hola Esars, una forma es utilizando el editor nano como root, es muy fácil de utilizar.

      No colocaste cual es el error que da a la hora de abrir gedit como root.

  21. Esars dijo:

    Gracias Oliver pero ya vi que el problema que tenia con el samba en eran los firewalls de ambas maquinas pero aun no puedo hacerlo funcionar al 100%

    -Puedo ver desde linux las carpetas compartidas de windows y PUEDO ENTRAR EN ELLAS

    -Puedo ver desde windows las carpetas compartidas de Linux PERO no puedo entrar en ellas

    -Justo por el punto 2 aun no puedo compartir la impresora…

    - A veces el samba me sale como que no arranco…

  22. Cirin dijo:

    Exelente post gracias men, tengo una pregunta: Disculpa, quisiera saber como compartir archivos entre fedora 15 y debian…

  23. luz dijo:

    amigo disculpa pero cuando ingreso
    gedit /etc/samba/smb.conf
    me aparece esto:
    (gedit:2624): EggSMClient-WARNING **: Failed to connect to the session manager: None of the authentication protocols specified are supported

    ** (gedit:2624): WARNING **: Could not connect to session bus

    te agradeceria si me puedes ayudar. gracias

    • Olivers dijo:

      Hola Luz, esto es un problema con los permisos de Fedora para abrir gedit como root (su) tienes que primero ejecutar:

      su –

      Para ingresar como root con todos los privilegios (el guión – es importante) y luego si ejecutas el comando gedit /etc/samba/smb.conf

      Avisanos si esto te sirvió.

  24. luz dijo:

    Gracias Olivers, de mucha ayuda tu manual ya que compartir documentos entre fedora y windows es mi proyecto final de la prepa, te amo :D D una pregunta mas es la misma configuracion para windows 7????

  25. luz dijo:

    oye y seria mejor si pudieras hacer un video :P . saludos

  26. luz dijo:

    olivers disculpa por escribirte tanto, pero es que en verdad estoy desesperada no puedo hacerlo, quisiera saber si no hay una forma de configurar samba de manera grafica, te agradeceria si me puedes ayudar.

  27. Olivers dijo:

    Hola luz, para tus preguntas:

    1. Si debería funcionar para Windows 7
    2. El video estará en pendiente por ahora ;)
    3. Si hay varias interfaces gráficas para configurar Samba aquí puedes encontrar una lista:

    http://www.samba.org/samba/GUI/

    Cualquier problema escribe y te ayudo en lo que pueda

  28. Miguel Alejandro dijo:

    Pana tremenda ayuda gracias por ese manual, pon video pichirre

    Saludos




Algún comentario?