18
mar
2007

Instalando Samba en Ubuntu / Debian para compartir archivos e impresoras en redes Windows

  • Sigue a Vensign en Twitter
  • Digg Esto!
  • Compartelo en Facebook
  • Compartelo en Buzz
Visto 64.831 veces | 272 Comentarios | Imprimir Imprimir
Samba es un programa Open Source que nos permite compartir archivos e impresoras desde una computadora Linux a PC 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í En este tutorial veremos como instalar Samba en un PC con Ubuntu o Debian instalado. Lo primero es instalar Samba (como siempre les recuerdo que para instalar cualquier cosa en Linux necesitan tener privilegios de administrador o ser root, en el caso de utilizar Ubuntu colocando sudo antes de los comandos permite adquirir privilegios de root), ejecutamos el siguiente comando:
apt-get install samba smbfs
El archivo de configuración de Samba puede ser encontrado en /etc/samba/smb.conf vamos a editar este archivo, primero realizamos una copia de respaldo:
cp -p /etc/samba/smb.conf /etc/samba/smb_18032007_copia.conf
Siempre es bueno realizar una copia de los archivos de configuración que modifiquemos en caso de que cometamos algun error podamos volver a la configuración inicial, además a mi me gusta agregarle la fecha en que realice la copia para tener un registro. Luego procedemos a modificar el archivo: En Debian:
nano /etc/samba/smb.conf
En Ubuntu:
sudo gedit /etc/samba/smb.conf

Nota: Si estas en KDE en cambio de GNOME cambia gedit por kate

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: En Debian:
nano /etc/samba/smbusers
En Ubuntu:
sudo 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: En Debian:
nano /etc/samba/smb.conf
En Ubuntu:
sudo 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:
/etc/init.d/samba 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
 /etc/init.d/samba 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
 /etc/init.d/samba 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 sus comentarios serán bienvenidos.

Otros artículos que te pueden interesar

  1. 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...
  2. Curso de instalación y configuración de Samba en Ubuntu / Debian por IRC Hoy estaré dando un pequeño curso del servidor Samba para...
  3. Instalar Shorewall Firewall para Debian y Ubuntu En esta oportunidad les voy a mostrar como instalar Shorewall...
  4. Servidor FTP con proftp en Ubuntu / Debian En este tutorial vamos a hablar de cómo instalar y...
  5. Instalar un Servidor LAMP en Ubuntu/Debian Un servidor LAMP se refiere a la mezcla de Linux+Apache+Mysql+PHP...

Creative Commons License
Este trabajo está licenciado bajo Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported License

Comparte este Artículo!

  • Sigue a Vensign en Twitter
  • Digg Esto!
  • Compartelo en Facebook
  • Compartelo en Buzz

Subscribe without commenting

272 Comentarios

  1. Disculpen la ignorancia. Para montar un servidor de archivos con Debian Lenny para archivos windows la partición para éstos debe ser necesariamente NTFS o puede escribir y leer en ext2/3. Gracias

  2. Hola Roberto,

    Puedes montar una partición NTFS de MS Windows sin problemas en Linux.

    En Debian debes instalar el paquete ntfs-3g si no lo tienes y en el fstab debes colocar una línea parecida a esta dependiendo donde está tu partición de Windows y donde la quieres montar:

    /dev/hda1 /media/windows ntfs-3g defaults 0 0

    /dev/hda1 sería la partición de Windows (puedes chequearla con fdisk -l)

    Y /media/windows sería el directorio donde quieres que se monte.

    En Ubuntu es mucho más sencillo ya que simplemente seleccionas la partición y se monta automáticamente, no se si en Debian ya se hace también de forma automática.

    Hace mucho tiempo que no utilizo un Servidor Debian con MS Windows ;)

    Saludos
    Olivers

  3. Andres Queralt says:

    Hola,
    Mi duda es la que sigue,
    tengo un servidor Linux, Ubuntu Server y quiero que las maquinas windows de mi red se conecten a el como servidor de archivos e impresoras. La duda es como debo configurar el SAMBA para que las estaciones windows vean los recursos compartidos del servidor, tanto archivos, como impresoras.

    Antemano, Gracias por vuestro tiempo
    y vuestras respuestas

    Andres

  4. Gracias men por este tutorial de Samba esta buenisimo! me ayudo mucho! Gracias por el aporte.

  5. Hola, segui al pie de la letra tu tutorial, pero tengo 2 problemas….

    1° no puedo agregar usuarios ya que me aparece:
    root@LINUX-PC:/home/XXX# smbpasswd -a Alvaro
    New SMB password:
    Retype new SMB password:
    Failed to add entry for user Alvaro.

    y 2°
    root@LINUX-PC /home/XXX# /etc/init.d/samba restart
    bash: /etc/init.d/samba: No existe el archivo o directorio

    me ayudas?

  6. Hola Alvaro prueba con este comando:

    sudo /etc/init.d/smbd restart

    Para reiniciar el servidor una vez hecho esto te debería funcionar el otro comando, pronto le haré la corrección al tutorial ya que cambiarion el comando de samba a smbd

    Cualquier cosa vuelve a escribir

    Saludos
    Olivers

  7. Saluos amigo, he leido y aplicado tu tutorial, pero al intentar acceder a una carpeta de mi red, tengo problemas ya que me pide la autentificacion del usuario y cuando la tipeo no me da acceso, te anexo el smb.conf a ver que cosa esta fuera de lugar… de ante mano Gracias…

    Server-AlmaMater:/home/server# testparm
    Load smb config files from /etc/samba/smb.conf
    Processing section “[homes]”
    Processing section “[printers]”
    Processing section “[print$]”
    Processing section “[Server]”
    Loaded services file OK.
    Server role: ROLE_STANDALONE
    Press enter to see a dump of your service definitions

    [global]
    workgroup = UNESR
    server string = %h Servidor de archivos
    obey pam restrictions = Yes
    pam password change = Yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    username map = /etc/samba/smbusers
    unix password sync = Yes
    syslog = 0
    log file = /var/log/samba/log.%m
    max log size = 1000
    dns proxy = No
    panic action = /usr/share/samba/panic-action %d

    [homes]
    comment = Home Directories;
    valid users = %S
    create mask = 0700
    directory mask = 0700

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

    [print$]
    comment = Printer Drivers
    path = /var/lib/samba/printers

    [Server]
    comment = Server
    path = /home/server
    force user = nobody
    force group = nogroup
    read only = No
    create mask = 0777
    directory mask = 0777
    guest ok = Yes

    • Hola Jose no veo por ningún lado que hayas puesto la directiva de security=user, lee la parte del tutorial de como crear, editar y eliminar usuarios en samba y la siguiente de compartir archivos con samba

  8. y como ago para coenctarme desde windows? lo ago con \\direc ip
    pero me aparece usuario y contraseña erronea.. ideas?

  9. Por fin un tutorial que sirve!!!

    Gracias amigo! :-)

  10. Hola, saludos y agradecido por el artículo.

    Una cuestión, he realizado los pasos para compartir el home a cada usuario linux que entre por windows mediante \\dirIpServerLinux, funciona bien, una vez que se valida el usuario muestra solamente su carpeta sobre home.

    El problema es que cuando quieres logearte desde un linux desktop no pide nada y no muestra nada… ¿me podéis dar alguna pista de porque…?

  11. Al momento de reiniciar elsamba el archivo no existe a que se debe esto y estoy trtando de configurar samba en ubuntu pero no puedo reiniciar el samba por que el archivo de reiniciar no existe y ya configure todo lo demas

  12. hectsus says:

    hola
    tengo un problema para ver los archivos en SAMBA desde WINDOWS el problema es que no veo bien los registros se ven en una sola linea, existe una forma de verlos en ASCII es decir el inicio y fin de archivo ??

    Gracias por tu ayuda

    Saludos

    • Hola hectsus, en el bloc de notas en el menú de Formato selecciona Ajuste de línea con esto debería funcionar.

      También te recomiendo que utilices Notepad++ http://notepad-plus-plus.org/ que es un sustituto muy bueno para el bloc de notas muy completo y es software libre y gratuito. Tiene muchas funcionalidades, pesa poco y es muy útil.

  13. Carlos Castro says:

    Hola una consulta.
    Si quiero que una carpeta sea accesible por mas de un grupo. Ejemplo, tengo 4 grupos de usuarios y una carpeta solo 2 de estos grupos tienen acceso ¿como lo hago?.
    Puedo hacerlo por usuarios, pero son muchos me gustaría validarlo por usuarios.

    Gracias por la atención.

  14. Maximiliano says:

    Hola, sigo todos los pasos pero cuando entro a los recursos compartidos desde windows no veo la impresora que tengo en ubuntu.
    Para solucionarlo entro a editar etc/samba/smb.conf y simplemente con poner guardar sin hacer ningun cambio ya puedo ver la impresora desde windows.
    Habra alguna solucion? porque cada vez que reinicio la pc tengo que hacer el mismo procedimiento.

    gracias

    • A veces eso me pasa, simplemente demora un poco más en iniciarse el servidor samba o a veces no hay caso que se vea la impresora, lo soluciono con el comando para resetear el servidor samba sin editar nada.

      Para reiniciar samba

      Luego de efectuar algún cambio en el archivo /etc/samba/smb.conf debemos reiniciar samba, para ello :

      $ sudo /etc/init.d/samba restart
      Ojo en Ubuntu 10.04 LTS y 10.10 el comando anterior no va, debes utilizar este:

      $ sudo restart smbd

      Saludos

  15. alejandro says:

    espectacular explicacion. justo lo que necesitaba. segui todo al pie de la letra y parece funcionar de diez. se agradece el aporte

Deja tu comentario, duda o sugerencia

Agrega tu comentario, o trackback desde tu sitio web. Tambien puedes Registrarte o ingresar en Vensign para obtener mucho más (volveras a esta página luego de registrarte)

Puedes utilizar el siguiente código HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Este blog soporta Gravatares. Para obtener tu avatar, por favor registrate en Gravatar.

43 queries. 0,440 seconds.