2466536

Samba im Terminal: Unkompliziert auf Dateien zugreifen

04.12.2019 | 13:01 Uhr | Hermann Apfelböck

Samba- und Windows-Freigaben nutzt man in der Regel im grafischen Dateimanager und der beherrscht das Protokoll SMB/CIFS. Anders sieht es aus, wenn ein Netzrechner Daten im Terminal oder per Bash-Script automatisch übertragen oder abholen soll.

Linux ist erstens im Netzwerk zu Hause, zweitens priorisiert Linux das Terminal. Zu diesen beiden Binsenweisheiten will gar nicht passen, dass das Terminal mit Samba-Freigaben nichts anfangen kann. Direktes Schreiben auf oder Lesen von Samba-Servern ist hier nicht vorgesehen, was zum umständlichen Mounten in das lokale Dateisystem nötigt – und dies vielleicht nur, um eine kleine Datei abzulegen. In diese Lücke kann das Terminaltool Smbclient springen, das ursprünglich als Diagnoseund Notfalltool für den Zugriff auf Windows-Rechner konzipiert war.

Tipp: Die 10 wichtigsten Linux-Befehle für Netzwerk und Internet

Die Problemstellung 

Das nachfolgend beschriebene und mit Smbclient zu lösende Problem ist natürlich ein Minderheitenthema. Am Linux-Desktop wird für den Zugriff oder die Synchronisierung von Samba-Freigaben kaum jemand das Terminal verwenden. Jedoch kann es erwünscht sein, Zustände oder Dateilisten von Netzwerkrechnern auf einem anderen Rechner zu hinterlegen oder zentral zu sammeln. Unter Windows schreibt ein Terminalbefehl wie 

dir /s /b > \\192.168.172.10\Data\Transfer\liste.txt

umstandslos und ohne Angabe der Authentifizierungsdaten auf eine Samba-Freigabe, sofern die Anmeldedaten auf dem Windows-Rechner hinterlegt sind. Linux-Rechner untereinander erledigen solche Kommunikation genauso elegant über SSH. Einfaches Schreiben und Lesen auf Samba-Freigaben funktioniert im Terminal hingegen nicht – jedenfalls nicht ohne externe Hilfe.

Smbclient: Bestandteil von Samba 

Typischer Kopierbefehl mit Smbclient: Ein einzeiliges Kommando kann einzelne oder mehrere Dateien automatisiert vom Samba-Server abholen oder dorthin hochladen.
Vergrößern Typischer Kopierbefehl mit Smbclient: Ein einzeiliges Kommando kann einzelne oder mehrere Dateien automatisiert vom Samba-Server abholen oder dorthin hochladen.

Die Installation von Smbclient ist selten erforderlich, weil das Tool als Bestandteil des Metapakets Samba in der Regel vorliegt. Bei Bedarf kann es aber auch einzeln mit 

sudo apt install smbclient 

nachinstalliert werden.

Das Programm hat nicht nur ein ausuferndes Optionsarsenal (smbclient - -help), sondern als interaktive Samba-Shell einen Befehlsvorrat von über 80 Kommandos. Davon können Sie sich überzeugen, indem Sie nach (Beispiel) 

smbclient -U ha //192.168.172.10/Data 

das Kommando „help“ eingeben. Beim Aufruf sind folgende Besonderheiten zu beachten: 

1. Als Ziel müssen Sie genau die Samba-Freigabe eingeben. Allein die Angabe des Rechnernamens oder seiner IP-Adresse („//192.168.0.8“) scheitert ebenso wie die Angabe eines Unterverzeichnisses („//192.168.0.8/Data/Transfer“).

2. Als User „-U“ müssen Sie ein gültiges Samba-Konto auf dem entfernten Rechner verwenden. Dessen Samba-Kennwort wird danach automatisch abgefragt. Für automatisierte Aktionen können Sie aber das Kennwort auch gleich im Aufruf mitliefern (Beispiel): 

smbclient -U ha%GeHeim //192.168.172.10/Data 

Mit „quit“, „exit“ oder „q“ beenden Sie die Samba-Verbindung wieder.

Von den zahlreichen Kommandos, die das Tool anbietet, sollte man sich nicht abschrecken lassen. In der Praxis werden Sie kaum eine Handvoll benötigen.

Zu den Klassikern gehören auch sonst bekannte Standards wie „cd“, „ls“ (dir), „mkdir“, „rm“ (del). Wer das FTP-Kommandotool kennt, findet sich auch beim Rest sofort zurecht, weil sich Smbclient an diesem Vorbild orientiert.

Dateien liefern oder abholen

Interaktiver Modus: Eine Übersicht mit „help“ kann nicht schaden, jedoch werden Sie die allermeisten der zahlreichen Kommandos nie benötigen.
Vergrößern Interaktiver Modus: Eine Übersicht mit „help“ kann nicht schaden, jedoch werden Sie die allermeisten der zahlreichen Kommandos nie benötigen.

Ein interaktiver Gebrauch von Smbclient ist kaum praxisrelevant. Aber mit einem zweizeiligen Script lässt sich jetzt mühelos die Ablage einer Information auf einer entfernten Samba-Freigabe erreichen: 

find /home -iname "*.*" > raspi.txt 
smbclient -U ha%GeHeIm //192.168.172.10/Data -c 'cd 
Transfer/1_Temp;put raspi.txt' 

Hier wird erst eine Dateiliste erstellt und danach auf die Freigabe kopiert. Das wichtigste Detail im obigen Smbclient-Kommando ist die Fähigkeit, mit Schalter „-c“ einen oder mehrere mit Semikolon getrennte Befehl(e) mitgeben zu können. In diesem Fall ist es der Wechsel mit „cd“ in das gewünschte Verzeichnis und dann der Befehl „put“, um die Dateiliste zu kopieren. Es muss sich um eigene, interne Befehle von Smbclient handeln.

Nach demselben Muster können Sie eine bestimmte Datei von der Freigabe auf den aktuellen Rechner holen: 

smbclient -U ha%GeHeIm //192.168.172.10/home -c 'cd ha;get liste.txt' 

Die mit „get“ kopierte Liste landet dabei im aktuellen Verzeichnis des lokalen Systems. Im Allgemeinen wird das automatisierte Ablegen oder Abholen einer einzigen Datei das Haupteinsatzgebiet von Smbclient sein. Die Fähigkeiten des Tools gehen aber deutlich darüber hinaus: 

smbclient -U ha%GeHeIm //192.168.172.10/Data -c 'cd Depot/Sonderhefte;prompt off;mget *.pdf'

Die Befehle „mget“ und „mput“ können alle Dateien einer bestimmten Dateimaske oder auch sämtliche Dateien eines Verzeichnisse (mget *.*) erfassen. Die Bestätigung für jede Datei lässt sich mit „prompt off“ abschalten und damit ist der Ablauf automatisierbar. Es geht noch umfangreicher: 

smbclient -U ha%GeHeIm //192.168.172.10/Data -c 'cd Depot/Sonderhefte;recurse on;prompt off;mask *.pdf;mget *' 

Der aktivierte „recurse“-Befehl durchläuft vom angegebenen Startordner aus sämtliche Unterverzeichnisse, um dann die angeforderten Dateien zu kopieren. Das Ganze funktioniert nach unserer Kenntnis nur mit dem zusätzlichen „mask“-Befehl.

Achtung: Im lokalen Zielordner werden sämtliche Unterverzeichnisse gemäß der Samba-Quelle erstellt, auch wenn diese Verzeichnisse keine der angeforderten Dateien enthalten.

Noch ein Hinweis: Die Kopierbefehle „get“, „put“, „mget“, „mput“ nehmen keine Rücksicht auf bestehende Dateien gleichen Namens. Diese werden überschrieben.

Siehe auch: So lösen Sie Linux-Netzwerkprobleme

Akademische Spezialitäten von Smbclient 

Samba-Überwachung mit „notify“: Diese Möglichkeit von Smbclient ist kein Alltagsinstrument, gibt aber zuverlässig Auskunft über die Aktivitäten auf einer Freigabe.
Vergrößern Samba-Überwachung mit „notify“: Diese Möglichkeit von Smbclient ist kein Alltagsinstrument, gibt aber zuverlässig Auskunft über die Aktivitäten auf einer Freigabe.

Startoption „-D“ oder „--directory=“: Anstatt mit „cd“ in das gewünschte Verzeichnis zu wechseln, gibt es auch einen Startparameter für das Wunschziel: 

smbclient -U ha%GeHeIm //192.168.172.10/Data -D Transfer/Backgrounds 

Der Serveraufruf selbst muss zwar direkt zur Freigabe führen, aber der gesuchte Unterordner kann dann gleich mit „-D“ angefordert werden.

Startoption „-A“ oder „--authenticationfile=“: Im Heimnetz sollte es kein Problem sein, das Samba-Kennwort im Klartext in einem Script abzulegen, zumal sich das Script durch Pfad und Dateirecht vor Fremdzugriff schützen lässt. Smbclient sieht dafür aber auch noch einen speziellen Startparameter vor, um solchen Schutz zu vereinfachen. Mit Schalter „-A“ 

smbclient -A /root/smbpass.txt //192.168.0.8/Data […] 

kann eine Datei (im Beispiel „smbpass.txt“) angegeben werden, welche die Samba-Authentifizierungsdaten in folgender Form enthält (Beispiel): 

username=ha 
password=GeHeIm 
domain=GIESING 

Auch diese Datei ist natürlich im Klartext lesbar, kann aber – eventuell einfacher als ein Script oder Bash-Alias – durch Dateirechte geschützt werden.

Kommando „notify“ : Der interne Befehl „notify“ bietet ein Überwachungsprotokoll. Der Befehl zeigt jede Dateiaktion innerhalb eines Ordners und aller Unterordner. Nach der Eingabe

smbclient -U ha%GeHeIm //192.168.172.10/Data -c 'notify Transfer' 

können Sie in Echtzeit mitlesen, was in diesem Samba-Ordner erstellt, geändert oder gelöscht wird. Das Beispiel geht davon aus, dass sich das Verzeichnis „Transfer“ auf oberster Ebene der Freigabe „Data“ befindet. Der Notify-Befehl läuft endlos, bis Sie ihn mit Strg-C abbrechen.

Die Themen in Tech-up Weekly #170:

► Shadow: Cloud Gaming ab 12,99 Euro im Monat
www.pcwelt.de/news/Shadow-Cloud-Gaming-ab-12-99-Euro-im-Monat-10692849.html

► Vodafone schließt “größtes LTE-Funkloch Deutschlands”
www.pcwelt.de/news/Vodafone-schliesst-groesstes-LTE-Funkloch-Deutschlands-10691536.html

Quick-News:

► Google-KI schlägt 99,8 Prozent aller Starcraft 2 Spieler
www.pcwelt.de/news/Google-KI-schlaegt-99-8-Prozent-aller-Starcraft-2-Spieler-10694094.html
► Neue Netflix-Funktion sorgt für Wirbel im Netz und in Hollywood
www.pcwelt.de/news/Neue-Netflix-Funktion-sorgt-fuer-Wirbel-im-Netz-und-in-Hollywood-10692744.html
► EA-Spiele demnächst wohl wieder bei Steam erhältlich
www.pcwelt.de/news/Electronic-Arts-EA-Spiele-demnaechst-wohl-wieder-bei-Steam-erhaeltlich-10692013.html

►Nvidia: Neuer Shield TV und Shield TV Pro 2019 vorgestellt
www.pcwelt.de/news/Nvidia-Neuer-Shield-TV-und-Shield-TV-Pro-2019-vorgestellt-10692071.html

►Verbot sexueller Nutzung von Emojis auf Facebook und Instagram
www.pcwelt.de/news/Verbot-sexueller-Nutzung-von-Emojis-auf-Facebook-und-Instagram-10694072.html

►Core i9 9900KS: Intels Top Gaming CPU startet
www.pcwelt.de/news/Core-i9-9900KS-Intels-Top-Gaming-CPU-startet-10692549.html

Fail der Woche:

► “Kein Handy vor 11 Jahren!”, fordert Deutschlands oberster Kinderarzt
www.pcwelt.de/news/Kein-Handy-vor-11-Jahren-fordert-Deutschlands-oberster-Kinderarzt-10693340.html



► Zum PC-WELT T-Shirt-Shop:
www.pcwelt.de/fan

► Unterstützt uns, werdet Kanalmitglied für nur 99 Cent im Monat und erhaltet exklusive Vorteile (jederzeit kündbar):
www.youtube.com/pcwelt/join

► Windows-10-Key günstig & legal von Lizengo.de:
tidd.ly/2e760c56

--------

Unser Equipment (Affiliate-Links):

🎥Kameras:
amzn.to/2SjTm72
amzn.to/2IuqA3T
amzn.to/2IvFtmk

🔭Objektive:
amzn.to/2E0wofO
amzn.to/2NkGoFd

➡️ Stative:
teuer: amzn.to/2DIlCeV
günstig: amzn.to/2IHm026
Einbein: amzn.to/2T0WbPG

📺Field Monitore:
teuer: amzn.to/2UnVbWk
günstig: amzn.to/2IKAbUv

🎤Mikros:
Lavalier: amzn.to/2IxIlzm
Headset: de-de.sennheiser.com/hsp-esse...
Hand: amzn.to/2HdVKIT
Shotgun: amzn.to/2tA6ZoE

➡️ Kamera-Cages & Zubehör:
amzn.to/2Estthx
amzn.to/2XY5M7N
Damit habt Ihr alles im Griff: amzn.to/2SmfptN

➡️ Schulter-Rigs:
teuer: bit.ly/2V08tny
günstig: amzn.to/2PJrr0z

💻 Schnitt-Notebooks:
Apple: amzn.to/2JuPgYY
Nicht-Apple: amzn.to/2E3vsHI


PC-WELT Marktplatz

2466536