- Estréllate y Arde - https://www.estrellateyarde.org -
Compartir archivos con Windows desde Linux: Samba
Samba (samba.org) es una implementación libre del protocolo SMB (Server Message Block, el protocolo que utilizan los equipos Windows para compartir sus directorios) que nos permitirá comunicarnos con equipos Windows desde Linux:
Equivalencias en Windows: MS-SMB.
Samba también permite:
El protocolo SMB utiliza los siguientes puertos, según figura en /etc/services:
netbios-ns 137 TCP y 137 UDP netbios-dgm 138 TCP y 138 UDP netbios-ssn 139 TCP y 139 UDP
Recursos
Para permitir a los equipos Windows acceder al equipo Linux instalaremos el servidor Samba (paquete samba). Durante la instalación nos hará varias preguntas para configurar el archivo /etc/samba/smb.conf, aunque después lo revisaremos:
Una vez terminada la instalación, tendremos los dos demonios de Samba funcionando:
Para acceder a Samba crearemos un usuario específico, samba, que será el único que tendrá acceso a los recursos compartidos y que deberán usarán todos los ordenadores que accedan a los mismos. Como no queremos que el usuario samba pueda acceder a otros servicios del sistema le impediremos hacer login, creándolo con el comando:
# useradd -s /bin/false samba
Después lo añadiremos a la lista de usuarios de Samba, que se encuentra en el archivo /etc/samba/smbpasswd, ejecutando el comando:
# smbpasswd -a samba
Para configurar el servidor Samba editaremos el archivo /etc/samba/smb.conf.
workgroup = domain.com
server string = %h server (Samba %v)
donde %h es el nombre del equipo y %v la versión de Samba.
encrypt passwords = true
; guest account = nobody
Si la descomentamos permitiremos que dejar el nombre de usuario y contraseña en blanco equivalga a entrar como el usuario guest (Invitado, sin contraseña). Autorizar el acceso guest es permitir a cualquier usuario de una máquina del grupo de trabajo acceder a Samba, y la integración en un grupo de trabajo no es un metodo fiable de validación. Cualquier usuario de una máquina Windows puede cambiar su grupo de trabajo tantas veces como desee sin que ningun mecanismo de autentificación se lo impida. Dejaremos la línea comentada para esto no ocurra.
hosts allow = 192.168.1. 127.
valid users = samba
[homes] comment = Home Directories browseable = yes writable = yes create mask = 0777 directory mask = 0777
- /var/www, permisos de lectura y escritura, etiqueta en Windows web.
- /home/francis/deb, permisos de lectura, etiqueta en Windows debian.
añadiremos las líneas:
[web] comment = directorio de la web path = /var/www writable = yes browseable = yes guest ok = no create mask = 0777 directory mask = 0777 [debian] comment = repositorio paquetes deb path = /home/francis/deb read only = yes browseable = yes guest ok = no
Si tenemos problemas para acceder al directorio compartido o para modificar, borrar o crear archivos revisaremos los permisos del usuario samba y el propietario de la carpeta compartida y su contenido.
wins support = yes domain master = yes
Reiniciaremos los demonios de Samba con:
# /etc/init.d/samba restart
y probaremos a acceder a los directorios e impresoras compartidas desde un ordenador Windows de la red, desde Entorno de red.
Algunos comandos útiles de Samba son:
# smbstatus
# nmblookup host
Nota
Tanto durante la instalación como durante el funcionamiento de SWAT se sobreescribe /etc/samba/smb.conf, por lo que debemos hacer copia de seguridad de este archivo si queremos conservarlo.
Para ejecutar SWAT teclearemos en el navegador la dirección http://localhost:901. Posiblemente no obtengamos respuesta positiva, debido a que le hemos dicho al superservidor inetd que en ese puerto escucha SWAT. Para ello, editaremos el fichero /etc/inetd.conf y añadiremos la línea:
swat stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat
Reiniciamos inetd:
# /etc/init.d/inetd restart
Y ahora sí tendremos acceso a http://localhost:901, siendo necesario acceder como root:
Si hacemos modificaciones en Samba con SWAT, guardaremos los cambios pulsando Commit changes y los activaremos reiniciando los demonios.
Instalaremos el cliente Samba (paquetes smbclient smbfs) para acceder desde Linux a equipos Windows o Linux con carpetas o impresoras compartidas mediante el protocolo SMB.
Para ver los recursos compartidos del equipo <host> haremos:
# smbclient -L <host>
Podemos especificar el usuario (la contraseña la preguntará) con:
# smbclient -L <host> -U <usuario>
Obtenemos la lista de recursos compartidos de la máquina <host>, con el identificador de usuario <usuario>, entre ellos una impresora llamada INKJET:
added interface ip=10.6.7.234 bcast=10.6.7.255 nmask=255.255.255.0 Got a positive name query response from 10.6.7.8 ( 10.6.7.8 ) Password: (not shown) Sharename Type Comment PRINTER$ Disk INKJET Printer STUFF Disk IPC$ IPC Remote Inter Process Communication
Para montar el directorio compartido haremos:
# smbmount //host/nombre_del_recurso /mnt/samba
Podemos especificar el nombre de usuario:
# smbmount //host/nombre_del_recurso /mnt/samba -o username=nombre_usuario
Para desmontar el recurso compartido:
# smbumount /mnt/samba
Para acceder a los recursos compartidos por SMB en el entorno gráfico tenemos varias opciones:
Article printed from Estréllate y Arde: https://www.estrellateyarde.org
URL to article: https://www.estrellateyarde.org/discover/samba
Click here to print.
Copyright © 2010 Estrellate y Arde