# Samba (Español)

(Traducción del artículo en inglés en curso)

## Introducción

Samba es una reimplementación del protocolo de red SMB/CIFS. Facilita el intercambio de ficheros y de impresoras entre sistemas Linux y Windows, o entre sistemas Linux -como una alternativa a NFS. Se configura fácilmente.

## Instalación

Para instalar el servidor Samba, instala el paquete samba

    # pacman -S samba

## Configuración

Identificado como superusuario (root), copia el fichero por defecto de Samba a /etc/samba/smb.conf

    # cp /etc/samba/smb.conf.default /etc/samba/smb.conf

Abre /etc/samba/smb.conf y edítalo según tus necesidades. El fichero está comentado y proporciona varios ejemplos. No debería ser difícil de entender.

El fichero, por defecto, crea una carpeta de intercambio para cada usuario. También crea un intercambio de impresoras.

### Iniciando el demonio

Samba puede ser iniciado con

    # /etc/rc.d/samba start

Samba normalmente usa FAM para vigilar los cambios en el sistema de ficheros. Necesitarás tener el demonio fam iniciado antes que samba. Una alternativa es usar Gamin

Añade samba a la línea DAEMONS en rc.conf para iniciar el demonio en cada arranque.

### SWAT: Herramienta de administración web de Samba

This article or section is out of date.

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Samba (Español)#)

SWAT es una herramienta que es parte de Samba. El ejecutable principal se llama swat y se invoca el daemon extendido de xinetd.

Hay muchas y variadas opiniones acerca de la utilidad de SWAT. No importa cómo uno intenta producir la herramienta de configuración perfecta, sigue siendo objeto de gustos personales. SWAT es una herramienta que permite la configuración basada en Web de Samba. Tiene un asistente que puede ayudar a obtener una configurado de Samba rápidamente, tiene ayuda contextual en cada parámetro de smb.conf, proporciona un seguimiento del estado actual de la información de la conexión, y permite la administración de contraseñas de red de MS Windows de toda la red.[1]

Nota: Si tiene problemas con estas instrucciones, puede utilizar la herramienta de Webmin en su lugar y fácilmente cargar el módulo SWAT allí.
Advertencia: Antes de utilizar SWAT, por favor tenga en cuenta que SWAT reemplazará completamente su smb.conf con un archivo totalmente optimizado que ha sido despojado de todos los comentarios que puede haber situado allí, y ninguna configuración no predeterminada se escribirán en el archivo.

Para utilizar SWAT, primero instale xinetd:

    # pacman -S xinetd

Edita `/etc/xinetd.d/swat` usando tu editor de texto favorito. Para abilitar SWAT, cambie la linea `disable = yes` a `disable = no`.

    service swat
    {
            type                    = UNLISTED
            protocol                = tcp
            port                    = 901
            socket_type             = stream
            wait                    = no
            user                    = root
            server                  = /usr/sbin/swat
            log_on_success          += HOST DURATION
            log_on_failure          += HOST
            disable                 = no
    }

Añade las entradas swat y swat_tunnel a `/etc/services` con los siguientes comandos usados como usuario root:[2]

    # echo "swat            901/tcp" >> /etc/services && echo "swat_tunnel     902/tcp" >> /etc/services

Si xinetd fue compilado con apoyo a tcp_wrappers (como es el predeterminado en arch), editar `/etc/hosts.allow` añadiendo después de línea:

    swat:127.0.0.1

Para iniciar el daemon xinetd:

    # /etc/rc.d/xinetd start

Puedes acceder a la interfaz web en el puerto 901 por defecto,

    http://localhost:901/

### Añadiendo usuarios

Para usar Samba necesitarás añadir un usuario:

    # smbpasswd -a <user>

El usuario debe tener una cuenta en el servidor. Si el usuario no existe recibirás el error:

    Failed to modify password entry for user "<user>"

Puedes añadir un nuevo usuario con adduser

## Accediendo a los intercambios Samba

KDE y Gnome pueden navegar por los directorios de intercambio Samba. De este modo, no necesitas ningún paquete adicional necesario si usas estos entornos de escritorio. (Sin embargo, para una GUI en la configuración del sistema de KDE usted tiene que instalar el paquete kdenetwork-filesharing package de [extra]. Otra opción es el programa es SMB4K). Si, por el contrario, tienes pensado el intercambio desde una consola de comandos, necesitarás un paquete más.

### Desde Gnome

Instala primero el paquete gvfs-smb

    pacman -S gvfs-smb

En una ventana de Nautilus, presiona `ctrl`+`L` o ve al menú "Go-Ir" y selecciona "Lugar..." (N.T. no tengo Gnome, si esto es otra palabra que alguien lo edite si le place claro :) ). Cualquiera de las dos acciones te permitirá introducir smb://servername/share en la barra que aparece `Enter`.

Note: Si no tienes el nombre del servidor en el `/etc/hosts`, debes usar la direción IP del mismo en lugar del nombre.

    smb://servername/sharename

or

    smb://192.168.1.5/sharename

En KDE, es prácticamente igual (N.T. ídem). Para una interfaz gráfica necesitas instalar el paquete "kdenetwork-filesharing" desde el repositorio Extra.

### Desde otros entornos gráficos

Hay una serie de programas útiles, pero necesitan tener paquetes creados para ellos. Esto puede hacerse con el sistema de compilación de paquete de arch. Lo bueno de estos otros es que no necesitan un entorno particular a instalarse para apoyarlos, y así ser mas livianos.

LinNeighborhood es simple y genérico esplorador LAN y montador de comparticion. No muy bonito, pero efectivo.

Otros programas posibles son pyneighborhood, el plugin xffm-samba para Xffm y Gigolo.

### Desde una consola

Puedes también usar smbclient para navegar por la red desde la consola.

    $ smbclient -L <hostname> -U%

Listará los directorios públicos del servidor

### Montando una compartición de Samba

Para montar manualmente una compartición a traves del shell:

    # mount.cifs //<hostname>/<share> <punto_de_montaje> -o user=<username>,password=<password>

Para permitir a montar y desmontar una comparticion samba a un usuario normal puedes agregar setuid root a /sbin/mount.cifs. Una alternativa es usar el paquete smbnetfs.

### Agregando una comparticion a fstab

Puedes agregar una linea a fstab de este modo:

    //<hostname>/<share> <mount_point> cifs credentials=<credentials_file>,rw,user,noauto 0 0

Al ser fstab legible por todos los usuarios, no queremos poner nuestra contraseña Samba en este archivo. En este caso podemos usar un archivo de credenciales solo legible por ti. Es un simple archivo de texto que contiene:

    username=<username>
    password=<password>

La opción user de la línea de fstab permite al propietario del <punto_de_montaje>, montar y desmontar la compartición. La opción noauto desabilita el montaje en el arranque.

Si estas agreagando una compartición Samba a fstab, debes agrear también el demonio netfs a rc.conf, en algun lugar después del demonio network. El demonio netfs montará particiones de red en el arranque y, mas importante, desmontar particiones de red en el apagado. Incluso si estás usando la opción noauto en fstab debes agregar el demonio netfs . Sin él cualquier comparticion de red que es desmontada cuando apagues la máquina, causará que el demonio network espere al time out de la conexión, extendiendo considerablemente el tiempo de apagado.

## Compartiendo archivos en tu LAN sin usuario y contraseña

Editar el /etc/samba/smb.conf por defecto en las siguientes líneas:

    security = user

a

    security = share

Si quieres restringir los datos compartidos a una interfaz específica, reemplaza

    ;   interfaces = 192.168.12.2/24 192.168.13.2/24

a (reemplaza eth0 a la red local en que quieras compartir)

    interfaces = lo eth0
    bind interfaces only = true

si quieres editar la cuenta que accede a los elementos compartidos, edita la siguiente línea:

    ;   guest account = nobody

El último paso es crear un directorio compartido (para permitir la escritura colocar: writable = yes):

    [Public Share]
    path = /ruta/hacia/la/comparticion/publica
    available = yes
    browsable = yes
    public = yes
    writable = no

### Ejemplo de archivo de configuración

La configuración que me funcionó:

    [global]
    workgroup = WORKGROUP
    server string = Samba Server
    netbios name = PC_NAME
    security = share
    ; la línea de abajo es importante! Si tienes problemas de permisos asegúrate de que el usuario es el mismo que el usuario de la carpeta que desea compartir
    guest account = mark
    username map = /etc/samba/smbusers
    name resolve order = hosts wins bcast
    wins support = no

    [public]
    comment = Public Share
    path = /path/to/public/share
    available = yes
    browsable = yes
    public = yes
    writable = no

## Solución de problemas

Si estás teniendo problemas accediendo a una compartición protegida desde Windows, prueba agregando esta línea al archivo /etc/samba/smb.conf Sugerencia encontrada aquí

    [global]
    # THE LANMAN FIX
    client lanman auth = yes
    client ntlmv2 auth = no

## Ver también

- Samba domain controller

## Mas Recursos

- Samba Samba (German) (archlinux.de)
- Sitio de Samba Oficial
- Samba: An Introduction

Category:

- Network sharing (Español)

Hidden category:

- Pages or sections flagged with Template:Out of date