Samba (Español)
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
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][enlace roto 2020-08-04]
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
.
/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í[enlace roto 2020-08-04]
[global] # THE LANMAN FIX client lanman auth = yes client ntlmv2 auth = no
Ver también
Mas Recursos
- Samba Samba (German) (archlinux.de)
- Sitio de Samba Oficial
- Samba: An Introduction