En este artículo voy a explicar cómo utilizar smbclient para conectarse, explorar, subir y bajar archivos de un share de samba desde línea de comandos.

El cliente smbclient, parte de la suite de Samba, permite acceder a recursos SMB/CIFS remotos de forma similar a un cliente FTP. Ofrece una interfaz muy similar a la de los clientes FTP de línea de comandos, e incluye operaciones para obtener archivos desde el servidor y subir archivos desde la máquina local.



Conectarse a un servidor Samba

Para conectarse a un servidor Samba utilizando smbclient, es necesario indicar la URL correcta, incluyendo el nombre de host del servidor y el share, además del nombre de usuario con el que se desea autenticar.

Por ejemplo, para conectarse al share "mysharedfolder" en el servidor "smbsrv.linuxito.com" nutilizando el usuario "user1", ejecutar:

root@debian:~# smbclient //smbsrv.linuxito.com/mysharedfolder -U user1
Enter user1's password: 
Domain=[LINUXITO] OS=[Windows 6.1] Server=[Samba 4.2.14-Debian]
smb: \> 

Indicar el password de "user1" de forma interactiva. Al conectarse con éxito se obserba el prompt de Samba. Si en lugar de esto retorna tree connect failed: NT_STATUS_ACCESS_DENIED, significa que el usuario o contraseña son incorrectos, o no tiene permiso para conectarse al share.

Comandos disponibles

El comando help permite listar todos los comandos disponibles:

smb: \> help
?              allinfo        altname        archive        blocksize
cancel         case_sensitive cd             chmod          chown
close          del            dir            du             echo
exit           get            getfacl        geteas         hardlink
help           history        iosize         lcd            link
lock           lowercase      ls             l              mask
md             mget           mkdir          more           mput
newer          open           posix          posix_encrypt  posix_open
posix_mkdir    posix_rmdir    posix_unlink   print          prompt
put            pwd            q              queue          quit
readlink       rd             recurse        reget          rename
reput          rm             rmdir          showacls       setea
setmode        stat           symlink        tar            tarmode
translate      unlock         volume         vuid           wdel
logon          listconnect    showconnect    ..             !

Para obtener ayuda sobre un comando específico, indicarlo como parámetro:

smb: \> help put
HELP put:
        <local name> [remote name] put a file

Listar directorios

Es posible listar el contenido del directorio actual ejecutando dir:

smb: \> dir
  .                                   D        0  Tue Jun 13 10:36:04 2017
  ..                                  D        0  Wed Jun  7 09:49:06 2017
  vfp6                                D        0  Tue Jun 13 10:35:38 2017

                50330 blocks of size 2097152. 45240 blocks available

Este comando sólo puede listar el directorio actual.

Cambiar a un subdirectorio

Utilizar cd, al igual que en cualquier shell:

smb: \> cd vfp6\

Se observa que la ruta en el prompt cambia, indicando la nueva ubicación:

smb: \vfp6\> dir
  .                                   D        0  Tue Jun 13 10:35:38 2017
  ..                                  D        0  Tue Jun 13 10:36:04 2017
  VC98                                D        0  Tue Jun 13 10:35:32 2017
  SETUP.TDF                           A       84  Tue Jun 13 10:35:02 2017
  SAMPLES                             D        0  Tue Jun 13 10:35:16 2017
  VSS                                 D        0  Tue Jun 13 10:35:38 2017
  SETUPWIZ.INI                        A     2275  Tue Jun 13 10:35:02 2017
  READMESS.HTM                        A    28932  Tue Jun 13 10:35:02 2017
  SHARED                              D        0  Tue Jun 13 10:35:17 2017
  HTMLHELP                            D        0  Tue Jun 13 10:35:09 2017
  DCOM98                              D        0  Tue Jun 13 10:35:09 2017
  READMEVB.HTM                        A   211891  Tue Jun 13 10:35:02 2017
  SETUP.EXE                           A   556544  Tue Jun 13 10:35:02 2017
  READMEVJ.HTM                        A    65625  Tue Jun 13 10:35:02 2017
  VID98                               D        0  Tue Jun 13 10:35:38 2017
  VS98ENT.MIF                         A        5  Tue Jun 13 10:35:02 2017
  SETUP                               D        0  Tue Jun 13 10:35:17 2017
  INSTALL.HTM                         A    50101  Tue Jun 13 10:35:02 2017
  READMEVC.HTM                        A   170450  Tue Jun 13 10:35:02 2017
  ACMBOOT.LST                         A     2981  Tue Jun 13 10:35:02 2017
  READMEVE.HTM                        A    53243  Tue Jun 13 10:35:02 2017
  IE4CHECK.INI                        A       77  Tue Jun 13 10:35:02 2017
  READMEVF.HTM                        A    36349  Tue Jun 13 10:35:02 2017
  READMEDN.HTM                        A    37250  Tue Jun 13 10:35:02 2017
  VS98ECD1.INF                        A        0  Tue Jun 13 10:35:02 2017
  EULA.TXT                            A    45746  Tue Jun 13 10:35:02 2017
  MSDESIGN                            D        0  Tue Jun 13 10:35:12 2017
  READMEDT.HTM                        A     6513  Tue Jun 13 10:35:02 2017
  READMEVI.HTM                        A    44027  Tue Jun 13 10:35:02 2017
  ACMBOOT.EXE                         A    74352  Tue Jun 13 10:35:02 2017
  READMERP.HTM                        A    64845  Tue Jun 13 10:35:02 2017
  KEY.DAT                             A      130  Tue Jun 13 10:35:02 2017
  IE4                                 D        0  Tue Jun 13 10:35:11 2017
  NTSP3                               D        0  Tue Jun 13 10:35:12 2017
  ISHIELD                             D        0  Tue Jun 13 10:35:12 2017
  AUTORUN.INF                         A       36  Tue Jun 13 10:35:02 2017
  OS                                  D        0  Tue Jun 13 10:35:13 2017
  VB98                                D        0  Tue Jun 13 10:35:18 2017
  VFP98                               D        0  Tue Jun 13 10:35:36 2017
  COMMON                              D        0  Tue Jun 13 10:35:08 2017
  SMSINST.EXE                         A    49152  Tue Jun 13 10:35:02 2017
  SETUP.INI                           A      149  Tue Jun 13 10:35:02 2017
  READMEVS.HTM                        A    15382  Tue Jun 13 10:35:02 2017

                50330 blocks of size 2097152. 45240 blocks available

Descargar un archivo

Para descargar un archivo desde el servidor a la máquina local, utilizar get:

smb: \vfp6\> get SETUP.INI 
getting file \vfp6\SETUP.INI of size 149 as SETUP.INI (6,6 KiloBytes/sec) (average 6,6 KiloBytes/sec)

El archivo queda en el directorio actual desde donde fue lanzado smbclient:

root@debian:~# ll SETUP.INI 
-rw-r--r-- 1 root root 149 jun 13 10:51 SETUP.INI

Subir un archivo al servidor

Para subir un archivo, recurrir al comando put, idéntico al de los clientes FTP:

smb: \vfp6\> put SETUP.INI 
putting file SETUP.INI as \vfp6\SETUP.INI (72,8 kb/s) (average 72,8 kb/s)

Indicar correctamente la ruta al archivo en la máquina local. El archivo es subido al directorio actual en el servidor (en este ejemplo dentro de vfp6\).

Para más información, acceder a la página de manual de smbclient:

man smbclient


Tal vez pueda interesarte


Compartí este artículo