La herramienta smbget
, provista por el paquete smbclient, es la versión de wget
para servidores Samba. Tiene la misma semántica que el utilitario wget
para servidores HTTP/HTTPS, ya que permite descargar archivos desde un servidor SMB desde línea de comandos. Este artículo demuestra su ejemplo de uso.
Para contar con esta herramienta en sistemas operativos Debian y derivados, es necesario instalar el paquete smbclient. Anteriormente demostré cómo utilizar el utilitario smbclient
para conectarse a un servidor Samba desde línea de comandos. Por ejemplo, para conectarse al share C$
(unidad C:\) del servidor "smb.linuxito.com" autenticándose como el usuario "administrator":
root@hal9000:~# smbclient -U administrator //smb.linuxito.com/C$ Enter WORKGROUP\administrator's password: Try "help" to get a list of possible commands. smb: \>
Este utilitario es provisto por el mismo paquete y es una especie de cliente FTP para servidores SMB/CIFS:
smb: \> help ? allinfo altname archive backup blocksize cancel case_sensitive cd chmod chown close del deltree dir du echo exit get getfacl geteas hardlink help history iosize lcd link lock lowercase ls l mask md mget mkdir more mput newer notify open posix posix_encrypt posix_open posix_mkdir posix_rmdir posix_unlink posix_whoami print prompt put pwd q queue quit readlink rd recurse reget rename reput rm rmdir showacls setea setmode scopy stat symlink tar tarmode timeout translate unlock volume vuid wdel logon listconnect showconnect tcon tdis tid utimes logoff .. !
Es posible listar directorios con dir
o ls
, cambiar de directorio con cd
y descargar archivos de forma interactiva con get
:
smb: \> dir .rnd A 1024 Thu Jan 17 11:26:00 2013 AUTOEXEC.BAT A 0 Thu May 7 21:11:21 2009 Backups D 0 Wed Nov 11 11:30:11 2015 boot.ini HS 210 Thu May 7 21:06:23 2009 Config.Msi DHS 0 Mon Sep 1 10:19:03 2014 CONFIG.SYS A 0 Thu May 7 21:11:21 2009 Documents and Settings D 0 Mon Sep 1 10:12:35 2014 Intel D 0 Thu May 7 21:18:55 2009 IO.SYS AHSR 0 Thu May 7 21:11:21 2009 MSDOS.SYS AHSR 0 Thu May 7 21:11:21 2009 Novell D 0 Wed Oct 19 11:48:44 2011 NRPE_NT D 0 Tue Aug 28 13:40:18 2012 NSClient++ D 0 Mon Dec 13 09:07:34 2010 NTDETECT.COM AHSR 47772 Sun Feb 18 09:00:00 2007 ntldr AHSR 297072 Sun Feb 18 09:00:00 2007 pagefile.sys AHS 2145386496 Thu Nov 28 14:33:37 2019 Program Files DR 0 Thu Feb 6 11:28:46 2014 realtek.log A 206 Thu May 7 21:25:12 2009 RECYCLER DHS 0 Mon May 11 11:08:53 2009 RHDSetup.log A 522 Thu May 7 21:25:12 2009 System Volume Information DHS 0 Wed Jul 18 01:37:28 2012 TempEI4 D 0 Thu May 7 21:40:21 2009 tmp D 0 Tue Jan 12 12:58:56 2016 WINDOWS D 0 Fri Aug 4 14:31:28 2017 wmpub D 0 Thu May 7 21:11:45 2009 12799999 blocks of size 4096. 8476637 blocks available smb: \> quit
Sin embargo, si se conoce con exactitud la ruta al archivo, es posible descargarlo directamente sin necesidad de ejecutar comandos interactivos empleando smbget
.
Por ejemplo, si se requiere descargar el archivo "C:\Documents and Settings\Administrator\Desktop\usrconf.cmd" (accesible desde el share "C$/Documents and Settings/Administrator/Desktop/usrconf.cmd") del servidor "smb.linuxito.com", ejecutar:
root@hal9000:~# smbget -U administrator smb://smb.linuxito.com/C$/Documents\ and\ Settings/Administrator/Desktop/usrconf.cmd Password for [administrator] connecting to //C$/smb.linuxito.com: Using workgroup WORKGROUP, user administrator smb://smb.linuxito.com/C$/Documents and Settings/Administrator/Desktop/usrconf.cmd Downloaded 376b in 2 seconds
Luego de solicitar las credenciales para el usuario, el archivo se descargar con éxito:
root@hal9000:~# ll usrconf.cmd -rwxr-xr-x 1 root root 376 Dec 26 09:38 usrconf.cmd
Es posible modificar el grupo de trabajo por defecto mediante la opción -W
Cabe destacar que, al igual que wget
, no es posible utilizar comodines ni expresiones regulares en la URL pasada como parámetro, sino que se debe especificar una URL canónica que identifique a un recurso específico. Sin embargo, mediante la opción -R
se permite descargar el contenido completo de un directorio de forma recursiva.
Las URLs deben anteponerse con el protocolo "smb://" y deben tener el siguiente formato:
smb://host/share/file
Esto difiere con el utilitario smbclient
, el cual no lleva el protocolo antepuesto en la URL, sino que utiliza el formato de doble barra de Windows (\\
) salvo que emplea barras directas (forward slash, /
).
Para más información, consultar la página de manual de smbget
:
man smbget