«

»

Abr 16 2013

Instalar Samba para compartir carpetas en Linux Debian

Samba es la aplicación o servicio que se encarga de que podamos compartir carpetas en red. Normalmente viene instalado en la versiones de escritorio, pero en los servidores no es así. Y para que queremos instalarlo? Bueno, quizá queramos aprovechar el hecho de tener un servidor dedicado en casa (o si tenemos uno contratado, usar Hamachi) para poder alojar archivos directamente sin necesidad de instalar un servidor FTP, o bien para que los usuarios (puede que nuestra familia o nosotros mismos) tengamos mas comodidad.

Actualmente las consolas como PS3 también nos dejan buscar carpetas compartidas en red, por lo que podríamos tener las películas alojadas en la carpeta compartida. Sea lo que sea, si necesitáis compartir carpetas en linux, aquí vamos a hacerlo paso a paso y sin interfaz gráfica (como en Driverlandia nos gusta).

Cabe decir que aunque este tutorial pone que es para debian, sirve para todos los que están basados en él (Ubuntu, Mint…)

 

Instalando Samba en Linux

Pues lo primero es tirar de la instalacion via repositorios

apt-get install samba

Nos saldrá una ventana azul donde nos solicitara el nombre del grupo de trabajo. Le indicamos el que ya usemos en casa con los otros ordenadores o en caso de no usar ninguno anteriormente, le asignamos el que queramos. En mi caso le asignare REDCASA como nombre de grupo de trabajo.

 

Configurando una carpeta compartida

Primero hemos de crear la carpeta o bien decidir cual vamos a compartir. En nuestro caso crearemos una que llamaremos public, para que todos los usuarios puedan leer y escribir información en ella. Procedemos a crearla (en el lugar donde mas os guste).

mkdir public

chmod 777 public/

Con chmod 777 le estamos diciendo que cualquiera tenga TODOS los permisos en esa carpeta para lo que hay actualmente (vease la carpeta). Mas adelante con el umask, le diremos que todo archivo que entre en esta carpeta, tenga permisos 777 automáticamente.

 

Ahora le vamos a decir a samba que comparta esta carpeta, por lo que vamos a editar el archivo de configuración de samba, donde le diremos que carpeta y con que permisos.

nano /etc/samba/smb.conf

 

 

En [global] podemos cambiarle el grupo de trabajo (si nos hemos equivocado, o se ha cambiado a otro).

workgroup = REDCASA

 

Bajamos a ## Authentication ## y vemos que nos dice # “security = user” is always a good idea. This will require a Unix account por lo que por defecto, necesitamos tener un usuario en Linux para que podamos acceder a esa carpeta compartida. Si queremos evitar que nos pida usuario para cualquier carpeta (incluso las publicas) debemos indicarle que por defecto los permisos son de compartir (luego podemos editar y configurar los permisos para otras carpetas, haciéndolos mas restrictivos).

security = share

Además de eliminar el # que hay delante, para descomentar la línea.

De esta forma le estamos diciendo a Samba que por defecto toda carpeta compartida puede ser vista por todos los usuarios que tengan acceso a la red y al grupo de trabajo.

Bajamos al final del archivo y creamos nuestra configuración de carpeta y escribimos la configuración de nuestra carpeta compartida publica

[comun]

path = /public/

read only = no

security = share

null password = yes

case sensitive = no

comment = Carpeta publica accesible desde Web

guest ok = yes

browseable = yes

umask = 000

 

Voy a proceder a explicarla configuración.

  • [comun] – Es el nombre con el que queremos que la carpeta compartida aparezca en la red, no tiene porque llamarse igual que la carpeta que hemos creado.
  • path – Ruta absoluta de la carpeta que compartimos.
  • comment – El comentario o descripción que asignaremos a esta carpeta compartida.
  • read only – Hacemos que los usuarios puedan escribir.
  • security – Le estamos diciendo que esta es publica y no necesita usuario y password (no es necesario si esta definido en el Authentification.
  • null password – Que no pida password para intentar acceder a ella.
  • case sensitive – Que no diferencie mayúsculas y minúsculas (los sistemas windows no lo hacen).
  • guest ok – Que puedan acceder invitados
  • browseable – Que nos aparezca en las carpetas compartidas de la red.
  • umask – Con 000, estamos diciendo que todo archivo que guardemos en ese directorio tenga permisos 777.

 

Guardamos el archivo, cerramos y reiniciamos el servicio de samba.

service samba restart

SAMBA_CARPETA_COMPARTIDA

Ahora cualquier ordenador que este en la red podrá acceder a la carpeta compartida, leer y escribir archivos en ella. Si accedemos desde un cliente linux, solo hace falta poner en el navegador de carpetas

smb://ipdelservidor

 

Si queremos mapear esta carpeta como una unidad de red en sistemas Windows

net use Z: \\ipdelserver\nombrecarpetacompartida

Y en Equipo (Mi PC) aparecerá una unidad de red que si entramos nos llevará directamente a la carpeta que hemos compartido en servidor Linux.

SAMBA_UNIDAD_RED

 

 

Ads Patrocinados / Publicidad

60 comentarios

Ir al formulario de comentarios

  1. Gerardo Maduro (@gerardomaduro)

    Buenas noches, muchas gracias por esta información, todo me funciona bien, pero cuando trato de entrar desde Windows 7 Ultimate, me pide el nombre de un usuario y su contraseña, en pocas palabras, pone: Enter Network Password.

    Cabe destacar, que hice todo tal cual!!. Gracias…

    1. Guille Rodríguez

      Has puesto en el smb.conf

      security = share Ojo porque como indico en el post, no es el security que asignas en la carpeta, es el comun (que por defecto esta configurado como security = user)

      Poniendo esto no te debería solicitar contraseña ni usuario salvo que luego se lo indiques al definir la carpeta compartida. Vamos yo lo tengo asi tal y como he puesto en el post y desde Windows 7 Professional y Windows 7 Ultimate (pc y portatil) no me pide password.

  2. 0aps

    El primer usuario tiene razón, pide usuario y contraseña. Yo también hice todo tal cual.

  3. seltsam

    funcionando desde windows 7 con normalidad modificando la linea “security = share”

    1. Guille Rodríguez

      Entonces veo que ambos usuarios anteriores no hicieron esto, que ademas esta
      comentado en el tutorial. Gracias por informar que te ha funcionado.

  4. fernando

    no sabia que existiera este comando creo que por eso cuando configuraba el mio tenia que acceder solo con la dirección ip del servidor y no aparecía como si estuviera en red, Gracias.

  5. sam

    Perdona, tengo una consulta, para crear la unida de red en windows, lo hago desde el servidor linux o donde ingreso net use Z: \\ipdelserver\nombrecarpetacompartida. Agradezco mucho tu tutorial, me parece excelente, solo tengo esa duda. Mil gracias.

    1. Guille Rodríguez

      Pues suponiendo que tu quieres acceder a esa carpeta desde un cliente Windows. Debes añadir ese comando en Inicio – Ejecutar de tu sistema Windows. Si el nombre de la carpeta lleva espacios, por ejemplo supongamos que es peliculas hd debes ponerlo con comillas, tal que asi:

      net use Z: "\\ipdelserver\peliculas hd"

      1. Nazareno

        Yo lo hice desde Equipo. Arriba dice “Conectar a unidad de red”… Es más fácil….

        1. Guille Rodríguez

          Si, realmente es lo mismo , pero a los sysadmin seguramente no es mas comodo poner el comando que andar siguiendo un asistente :D

  6. Mosquis

    Varias correcciones por si acaso a alguien no le funciona

    En algunos sistemas el security = share tiene un # delante. Hay que quitarlo.

    Y el daemon de samba en algunos sistemas es smbd. Y el último comando sería: service smbd restart

    1. Guille Rodríguez

      Gracias por el aporte, supongo que en Debian 7 ya es así smbd, en el caso de Debian 6 es tal cual pone el post. Aún así gracias por tu complementación :)

  7. José Gregorio Molina Durán

    perdona mi ignorancia pero como se cual es la ip??

    1. Guille Rodríguez

      Con el comando ifconfig te saldran las tarjetas de red y sus ip.

      Lo recomendable es que le pongas una ip estatica al servidor, te dejo un tutorial http://www.driverlandia.com/configurar-tarjeta-de-red-con-ip-estatica-en-debian-sin-interfaz-grafica/

  8. Rolo

    si te sale error de permiso

    dale: chmod -R 777 /tucarpetacompartida

  9. fbedia

    Te haría un monumento solo por este manual!!
    Seguí los pasos tal cual los indicas y todo esta perfecto…. a excepción de un problema que tuve pero que fue culpa mia y del copy-paste, porque puse como directorio compartido el mismo que tu: “path = /public/” y al tratar de acceder a la carpeta desde Windows me daba un error…
    Lo detecte rápidamente mirando los logs del samba, que para quien no lo sepa están en “/var/log/samba/”. En este directorio, había un fichero log donde indicaba claramente el problema….
    Asi que a todos los que dicen que no les funciona que miren el log, porque los pasos a seguir son claros y precisos!
    Muchas gracias.

    1. Guille Rodríguez

      Gracias a ti por comentar. Normalmente los tutoriales que ves en este blog son cosas que he ido haciendo y he querido documentarlas por dos motivos

      1 – Cuando lo tenga que volver a hacer, tener una guia ~bien documentada. (no es perfecta)
      2 – Aprovechar para que el tutorial pueda ayudar a la gente.

      Por eso me extraña que habiendome funcionado a mi tal cual, muchos dijeran que no les funcionaba.

  10. Exal Matuz

    Disculpa, hice todos los pasos del tutorial pero me marca un error, te explico:
    -En debian al tratar de abrir la carpeta compartida me sale el sig mensaje “No se pudo montar el lugar. Falló al montar la compartición de Windows”

    – En windows al abrirla sale el sig mensaje: “no se puede obtener acceso a \\PCDEBIAN\public. es posible que no tenga permisos para usar este recurso de red.
    uno de los dispositivos conectados al sistema no funciona”

    a que se deberá?? Saludos

    1. Guille Rodríguez

      Pues que se te ha olvidado poner lo de Share, o los permisos. Como indica fbedia mirate los logs de samba /var/log/samba y ahi veras el error que te da al intentar acceder.

  11. Osvaldo

    Hola estimado, antes de decir algo, te agradezco por esta información, muy bueno, pero tengo un problema, segui todos los pasos(incluso revise que estuviese security = share), pero aun windows me pide usuario y contraseña…saludos

    1. Guille Rodríguez

      Entiendo pues que estamos hablando del security = share de la configuración comun no de la carpeta en si. Mira que no haya un # delante de esa linea, si lo hay borralo puesto que la esta considerando como un comentario y por lo tanto no aplica la norma. Una vez lo hayas cambiado recuerda reiniciar el servicio de samba

      1. Osvaldo

        hola estimado, gracias nuevamente, pero te comento que el simbolo # elo habia borrado, pero tenia un ; antes y se lo borre, tambien de curioso descomente donde decia wins support = no y lo cambie por yes, y me funciono a la perfección…gracias por tu aporte, me sirvio de mucho…

  12. Julian

    Hola, tengo configurado todo tal cual y puedo ver las carpetas compartidas correctamente, pero al querer escribir algo me dice que no tengo los permisos necesarios, que puedo hacer para que todos tengan permisos de escritura ?

    1. Guille Rodríguez

      Hola Julian pues seguramente te falta.

      – Realizar un chmod 777 -R /carpeta/que/compartes
      Esto te asignará permisos de lectura y escritura a la carpeta y todo lo que haya dentro.
      – Poner el atributo umask en la configuración.
      Esto hará que todo archivo-carpeta que introduzcas por defecto tenga unos permisos (que tu le defines).

  13. Kristhyan Zubia

    Muchas gracias Guille por esta guía. A mi me dió perfecto, estaba buscando una guía que use solo la terminal y todo perfecto.

    Para muchos que no les resultó intenten con esto:

    workgroup = WORKGROUP

    1. Guille Rodríguez

      De nada, respecto a lo de WORKGROUP tal y como digo en el tutorial, hay que poner el nombre de la red de trabajo que se tenga en Windows. En este ejemplo pues he optado por cambiarlo y poner REDCASA.

  14. oscar

    saludos
    Como puedo yo ejecutar archivo exe de windows, puesto que ya tengo los archivos en una carpeta del servidor samba.
    Gracias

    1. Guille Rodríguez

      Pues igual que lo ejecutas desde una carpeta de Windows. Doble click y ya esta. Otra cosa es que el programa este preparado o no tenga algun impedimento para funcionar desde carpetas de red.

  15. Juan

    Tengo un problema son el smb.conf y el umask. Le he configurado con umask=000 sin embargo cuando reinicio el servicio samba y reviso el log sale un mensaje que no reconoce el comando y lo ignora. Me he dado cuenta de eso porque cuando creo un archivo desde un terminal windows y reviso sus permisos desde el servidor, no son 777. ¿alguna ayuda?

  16. gonzalo

    una pregunta, siguiendo tu tutorial pude compartir una carpeta de un debian a windows, perfecto, puedo crear archivos carpetas y todo, pero no me deja eliminarlas, para ello tengo que entrar al Debian y borrarlos a mano, ¿cual puede ser la causa?.. Muchas gracias.

  17. Pablo Cardenas (@kardenas3)

    Hola muchas gracias me sirvio bien para crunchbang 11 para compartir con windows 7
    aunque estaba el smb.conf el servicio no estaba instalado ni corriendo. con apt-get install samba anduvo bien.

  18. Agradecido

    Buen tutorial me sirvio mucho y ahora haz una segunda parte con mas tips

  19. David Imbajoa

    Muy buen trabajo hace dias buscaba esta informacion

  20. Juan

    Gracias por el aporte.
    Tengo un servidor viejito con arquitectura sparc y debian 7 instalado en el. Funciono todo tal cual lo pones en el tutorial.

    1. Guille Rodríguez

      Me alegro que te haya funcionado, ahora a disfrutarlo jejeje

  21. alvaro8093

    # “security = user” is always a good idea. This will require a Unix account

  22. alvaro8093

    no me aparece # “security = user” is always a good idea. This will require a Unix account

  23. Jesus GP

    BUen día, estimado porfa una consulta, yo tengo mi servidor de dominio y tengo mi servidor de archivo en linux debian, ahora todaslascarpetas estan publicas, pero Yo quiero solo habikitar a determiandos usuarios a cada carpeta segun su nombre de dominio, que pasos puedo realizar para darle seuridad a estos usuarios… gracias x tu gentil apoyo

    1. Guille Rodríguez

      Deberás buscar un manual de samba con active directory

  24. ezequiel

    cuando pongo en la consola nano/etc/samba/smb.conf me dice que no existe el fichero. AYUDAAAA soy principiante

    1. Guille Rodríguez

      Prueba a separar el nano del /etc/….

  25. Carlos Rios

    Hola, estoy intentando compartir carpetas de Debian 8 a Windows 10, a la hora de abrir una carpeta en windows me aparece que no puede obtener acceso a la carpeta “Es posible que el nombre de la ubicación no esté bien escrito o que exista un problema con la red” y en detalles “No se ha encontrado la ruta de acceso de la red.”

    La carpeta se encuentra en home y en el archivo de config. de samba está como path = /home/Carpetacompartida/

    1. Guille Rodríguez

      Eso se debe a que Windows 10 tiene desactivado el acceso a carpetas SMB que no tienen password puesta. Busca en google ‘activar samba en Windows 10’

      1. Carlos Rios

        No, intenté esto:

        https://www.schkerke.com/wps/2015/06/windows-10-unable-to-connect-to-samba-shares/

        También esto:

        https://www.schkerke.com/wps/2015/06/windows-10-unable-to-connect-to-samba-shares/#comment-18448

        Y esto:

        https://support.microsoft.com/en-us/kb/2696547

        Y sigue apareciendo el mismo mensaje, la buena noticia es que ya aparece la htpc en Redes en lugar de tener que escribir \\nombredeequipo

        Pero sigo sin poder entrar a las carpetas compartidas.

        1. Guille Rodríguez

          Prueba ejecutando este archivo de registro , a mi me ha funcionado sin problemas.

          Ejecutar http://driverlandia.com/filez/ActivarSambaWin10.reg y reinciar Windows.

          1. Carlos Rios

            Lamentablemente no, quizas el problema sea mi config. de samba? En Windows logro ver la PC y me aparecen las carpetas compartidas pero al tratar de abrirlas es cuando me dice que no encuentra la ubicacion, este es mi archivo de configuracion:

            http://pastebin.com/fuU7T4Sf

          2. Guille Rodríguez

            Perdona que haya tardado tanto en contestar pero he estado de exámenes y no he tenido mucho tiempo.

            He actualizado el archivo .reg que tienes en el comentario de encima, trae mas modificaciones, puesto que el otro día cuando tuve que conectarme a un SAMBA desde un Windows 10, también me fallaba usando el .reg, sin embargo en otros ordenadores con Windows 10 esto no sucedía. Despues de mirar las diferencias en el registro de Windows, he copiado la configuración de uno de los ordenadores que se conecta perfectamente y al aplicarla a los otros ha funcionado correctamente.

            Así que vuelve a descargarte el .reg si aún no has conseguido que te funcione y vuelve a ejecutarlo. Por cierto hay que reiniciar para que el programa que se conecta con samba aplique los nuevos cambios.

          3. Carlos Rios

            No, el problema persiste, no será error de mi Samba? que esté mal configurado, porque con Windows ya no quedan más opciones.

          4. Guille Rodríguez

            Desde un Windows 10, Windows 7, Windows XP poniendo en ejecutar \\nas\comun me muestra perfectamente la carpeta del NAS. Es mas he probado con un Windows 10 sin parche aplicado y ha mostrado correctamente la carpeta.
            Desde un portátil con Ubuntu 15.10 navegando por RED, encuentra el NAS y me permite entrar sin solicitar password.

            Desde un Ubuntu 15.10 que hace de mediacenter en el archivo /etc/rc.local
            mount -t cifs //10.10.3.10/comun/ /mnt/nas -o rw,sec=none

            La configuración de mi archivo smb.conf es la siguiente, tal cual copiado, tiene borrado todo lo que viene por defecto y solo he dejado las lineas que ves a continuación.

            [global]
            workgroup = REDCASA
            map to guest = bad user
            [comun]
            path = /nas/downloads/
            comment = Shared Downloads
            writable = yes
            guest ok = yes
            share modes = yes
            usershare allow guests = yes
            create mask = 666
            directory mask = 777
            force create mode = 666
            force directory mode = 777
            inherit permissions = yes

            Ten en cuenta que el post que hay en esta pagina es de hace ya años, y ha cambiado la configuración (cosa que me encontré al montar este nuevo NAS hace unos meses). Voy a poner un mensaje al principio del post indicando que puede que no funcione con las nuevas versiones de Samba.

  26. Angel Garcia

    Excelente aporte, solo una pregunta sabes como hacer para crear usuarios y estos puedan ingresar a cada carpeta ? Estoy tratando de hacerlo. Gracias Saludos

    1. Guille Rodríguez

      Añade el

      valid users = user1 user2 user3
      guest ok = no

      Recuerda que en el cliente Windows deberás indicarle que se ha de conectar usando algún usuario que disponga de permisos. Con esto debería bastarte.

  27. Jorge Balmaceda

    Hola una consulta, es posible compartir carpetas y que se puedan acceder desde internet? O con cual version de linux o distribuciones nas se puede hacer, evitando hacerlo via ftp, sino poniendo la ip publica y asi poder acceder desde un equipo con windows. Si me pudieran ayudar

    1. Guille Rodríguez

      Puedes, si es solo para ti o amigos puedes montar una vpn y que se conecten via VPN. (Ej Hamachi si es 4 personas) o una VPN con Openvpn si son mas…

      Otra opcion es directamente abrir los puertos en el router para el protocolo SAMBA y almenos que las carpetas esten protegidas por usuario y password.

      1. Jorge Balmaceda

        Entonces me comentas que es posible realizarlo, claro si la idea es que cuenten con contraseña, entonce es posible realizarlo, que por ejemplo un familia, desde su casa, poniendo la ippublica, poder acceder a las carpetas?

        1. Guille Rodríguez

          Claro, igual que si funcionara en red local. Te recomendaría que se usara via VPN para asegurar las conexiones (evitar que haya alguien escuchando en la red y obtenga usuario y contraseña (diria que va en texto plano)).

          Si lo quieres para montarte una especie de Dropbox, puedes montar un Owncloud sobre HTTPS.

          Pero respondiendo a tu pregunta si. SI ABRES LOS PUERTOS necesarios para que funcione el SAMBA, podras conectarte usando lo tipico de inicio -> ejecutar -> \\ipserver\carpeta

          1. Jorge Balmaceda

            Genio total Guille, Muchas gracias

  28. Carlos Cristobal

    hola que tal, tu Post la verdad que me ayudado muchisimo. muchas gracias.
    pero ahora. tengo una prqueña dificultad.
    necesito que la carpeta me solicite la dredencial de usuario.
    me podrías indicar como activarlo o cual o como debería poner el usuario, o que me esta haciendo falta para poder tener la carpeta compartida de manera segura con contraseña.

  29. andres

    buenas noches, es necesario el samba si quiero compartir la carpeta entre usuarios del mismo debian? por lo q lei sirve para debianwindows
    desde ya muchas gracias saludos

    1. Guille Rodríguez

      Del mismo debian te refieres supongo a la misma maquina? Entonces no hace falta, te recomiendo que crees una carpeta en /usr/share o otra opcion es crear una llamada /nas a la que asignaras a un grupo.

      Luego con meter en ese grupo nuevo a los usuarios que quieras que puedan crear, eliminar, modificar etc archivos en esa carpeta ya estara.

      SMB (Samba) es el protocolo que utiliza Windows para compartir carpetas entre ordenadores de la red. Por ello si quieres compartir carpetas desde un pc con Linux a un pc con Windows has de usar SMB, tambien puedes entre dos o N maquinas Linux , aunque si solo son linux tambien puedes hacer uso de NFS (vendria a ser el Samba de los Linux).

      Pero entendiendo que no es tu caso, con crear una carpeta, asignar permisos para los usuarios que quieras que tengan acceso (te sera mas fácil crear un grupo y meter a los usuarios en ese grupo).

      Espero haber solventado tu duda :)

  30. Luis

    saludos,,, en samba como en muchos archivos, hablo de una arquitectura 64bit linux debian wheezy, tener sumo cuidado con dejar espacios,,, por ejemplo…. valid users = user1 user2 user3…. este caso… samba no lo toma en cuenta debería verse asi,,,,, valid users=user1 user2 user3,,,, sin espacios entre el = de ambos lados, hace un tiempo me partía la cabeza pensando que habré echo mal… hasta que se me ocurrio eliminar los espacios y realmente me dio resultado,,, luego lo hacía a drede y vei como ciertos errores se presentaban….. espero sea de ayuda… gracias por su tutorial….

Deja un comentario