Enviar archivos sobre Samba con línea de comando

17

Me preguntaba si hay una manera de usar Samba para enviar elementos a una máquina cliente a través de la línea de comando (necesito enviar los archivos desde el servidor Samba). Sé que siempre podría usar, scppero primero me preguntaba si hay una manera de hacerlo con Samba. ¡Gracias!

t0xic
fuente

Respuestas:

19

Use smbclient, un programa que viene con Samba:

$ smbclient //server/share -c 'cd c:/remote/path ; put local-file'

Hay muchas banderas, como -Upara permitir que el nombre de usuario remoto que sea diferente a la local.

En los sistemas que dividen Samba en múltiples paquetes binarios, es posible que tenga los servidores Samba instalados pero aún faltan smbclient. En este caso, un, revise su repositorio de paquetes de un paquete denominado smbclient, samba-cliento similar.

Warren Young
fuente
Sigo recibiendoConnection to [IP] failed (Error NT_STATUS_CONNECTION_REFUSED)
t0xic
Cuando escribí //servermás arriba, me refiero a lo que está llamando la máquina cliente, que en este caso está actuando como un servidor. Para que esto funcione, debe tener una carpeta o unidad compartida a través de SMB.
Warren Young
Oh ... eso realmente no funcionará para mí. Supongo que solo lo usaré scp. Gracias de todos modos sin embargo!
t0xic
@ fleebow8: ¿Puede instalar un servidor SCP de terceros en las máquinas cliente, pero no puede hacer clic derecho en una carpeta en el Explorador de Windows y decir "Compartir"?
Warren Young
Tengo un proyecto específico que estoy haciendo donde quiero que todo sea automático.
t0xic
12

curl admite el smbprotocolo desde v7.40 : curl --upload-file /path/to/file.ext -u 'DOMAIN\Username' smb://172.16.17.52/ShareName/

Eadmaster
fuente
Esto funcionó muy bien para mí: curl --upload-file /home/me/local_file.txt --user "OurWindowsDomain\UserName:thePassword" smb://172.16.17.52/ShareName/Path/To/Remote/Dir. Tengo una lista de todos los nombres compartidos disponibles consmbclient -L //172.16.17.52 -U UserName%thePassword -W OurWindowsDomain
Matthias Braun
¡esto es perfecto!
Psicozoico el
2

Realmente funcionará será esto:

$ smbclient //server/share -c 'cd c:/remote/path ; put local-file remote-file'

local-file - archivo de la máquina local

remota de archivos - copia de este archivo en la máquina remota

Jack Belowzerooff
fuente
0

Otra forma si la cuota ya está montado por fusible

Si está ejecutando un escritorio con recursos compartidos ya montados por nautilus , caja o cualquier otro administrador de archivos , podría estar usando fusible (en lugar de smbclient ).

Si es así, puede encontrar algunos puntos de montaje en:

ls -l /run/user/$UID/gvfs/
drwx------ 1 charlie charlie 0 Feb  2 10:04 smb-share:server=hostname,share=documents

Sí, este es un punto de montaje !

df -h /run/user/$UID/gvfs/*
Filesystem      Size   Used  Avail  Use% Mounted on
gvfsd-fuse      16.2T  3.6T  12.6T   59% /run/user/1000/gvfs

Y podría usarlo como un sistema de archivos normal.

cp $HOME/myfile \
    /run/user/$UID/gvfs/smb-share:server=hostname,share=documents/destpath/
tecno
fuente
0

smbclient Version 4.9.5-Debiany curl 7.64.0no funcionó para mí ( Linux kali 4.19.0-kali4-amd64)

Esto hizo:

smbmap -H server -u username -p password --upload local-filename share\\remote-filename
chefarov
fuente