smbclient — ftp-ähnlicher Client für den Zugriff auf SMB-/CIFS-Ressourcen auf Servern.
smbclient {Dienstname} [Passwort] [-b <Puffergröße>] [-d Debugebene] [-D Verzeichnis] [-U Benutzername] [-W Arbeitsgruppe] [-M <NetBIOS-Name>] [-m MaxProtokoll] [-A AuthDatei] [-N] [-l LogVerzeichnis] [-L <Netbios-Name>] [-I IP-Adresse] [-E] [-c <Befehlsstring>] [-i Scope] [-O <Socketoptionen>] [-p Port] [-R <Namensauflösungsreihenfolge>] [-s <smb-Konfigdatei>] [-T<c|x>IXFqgbNan] [-k]
Dieses Werkzeug ist Teil der Samba(7)-Suite.
smbclient ist ein Client, der mit einem SMB-/CIFS-Server "sprechen" kann. Er bietet eine Schnittstelle ähnlich zu der des ftp-Programms (siehe ftp(1)). Zu den Operationen gehören Dinge wie das Holen von Dateien vom Server auf den lokalen Rechner, Platzieren von Dateien vom lokalen Rechner auf den Server, Holen von Informationen zu Verzeichnissen auf dem Server etc.
Dienstname ist der Name des Dienstes, den Sie auf dem Server benutzen möchten. Ein Dienstname hat die Form //server/dienst wobei server der NetBIOS-Name des SMB-/CIFS-Servers mit dem gewünschten Dienst und dienst der Name des angebotenen Dienstes ist. Um also eine Verbindung zu dem Dienst "printer" auf dem SMB-/CIFS-Server "smbserver" herzustellen würden Sie den Dienstnamen //smbserver/printer verwenden.
Beachten Sie, dass der benötigte Servername NICHT notwendigerweise der IP- (DNS-) Hostname des Servers ist! Benötigt wird ein NetBIOS-Servername, der mit dem IP-Hostname des Rechners, auf dem der Server läuft, identisch sein kann, aber nicht muss.
Der Servername wird entweder gemäß dem Parameter -R für smbclient oder mit Hilfe des Parameters name resolve order in der Datei smb.conf(5) gesucht, wodurch ein Administrator die Reihenfolge und Methoden bei der Suche von Namen ändern kann.
Das Passwort, das für den Zugriff auf den angegebenen Dienst auf dem angegebenen Server benötigt wird. Wenn dieser Parameter angegeben wird, wird die Option -N (unterdrücke Passworteingabe) angenommen.
Es gibt kein vorgegebenes Passwort. Falls kein Passwort auf der Kommandozeile angegeben wird entweder durch die Verwendung dieses Parameters oder durch Hinzufügen eines Passworts zu der Option -U (siehe unten) und die Option -N wird nicht angegeben, dann fragt der Client ein Passwort ab, selbst wenn der gewünschte Dienst gar keines verlangt. (Wenn kein Passwort benötigt wird, drücken Sie einfach die Eingabetaste und geben ein "leeres" Passwort ein.)
Bemerkung: Manche Server (darunter OS/2 und Windows for Workgroups) beharren auf Großbuchstaben im Passwort. Auf diesen Servern werden Passwörter mit Kleinbuchstaben oder in einer gemischten Schreibweise abgelehnt.
Überlegen Sie es sich gut, Passwörter in Skripte zu schreiben!
Diese Option wird von den Programmen der Samba-Suite dazu benutzt festzulegen, welche Namensdienste verwendet werden und in welcher Reihenfolge Hostnamen in IP-Adressen aufgelöst werden. Die Option erwartet einen String mit verschiedenen Auflösungsoptionen, die mit Leerzeichen voneinander getrennt sind.
Folgende Auflösungsoptionen sind vorhanden: "lmhosts", "host", "wins" und "bcast". Sie bewirken jeweils die folgenden Arten von Namensauflösungen:
lmhosts: Sucht eine IP-Adresse in der Samba-Datei lmhosts. Falls die Zeile in lmhosts keinen mit dem NetBIOS-Namen verbundenen Namenstyp hat (Details siehe lmhosts(5)), dann trifft bei einer Suche jeder gefundene Namenstyp zu.
host: Führt eine standardmäßige Auflösung von Hostname zu IP-Adresse aus, entweder mit der Systemdatei /etc/hosts, mit einer NIS- oder DNS-Suche. Diese Methode der Namensauflösung ist abhängig vom Betriebssystem und wird z.B. unter IRIX oder Solaris mit der Datei /etc/nsswitch.conf gesteuert. Beachten Sie, dass diese Methode nur dann benutzt wird, wenn der gesuchte NetBIOS-Namenstyp der Typ 0x20 (Server) ist, ansonsten wird sie ignoriert.
wins: Fragt einen Namen mit Hilfe der IP-Adresse ab, die im Parameter wins server aufgelistet ist. Falls kein WINS-Server angegeben wurde, wird diese Methode ignoriert.
bcast: Führt ein Broadcast auf allen bekannten Schnittstellen durch, die im Parameter interfaces aufgelistet sind. Dies ist die unzuverlässigste Methode der Namensauflösung, da sie verlangt, dass der Ziel-Host sich in einem lokal verbundenen Subnetz befindet.
Falls dieser Parameter nicht gesetzt wird, dann wird jene Reihenfolge bei der Namensauflösung benutzt, die in der Datei smb.conf(5) im Parameter name resolve order definiert ist.
Die vorgegebene Reihenfolge ist lmhosts, host, wins, bcast. Ohne diesen Parameter oder ohne Eintrag im Parameter name resolve order der Datei smb.conf(5) werden die Methoden bei der Namensauflösung in dieser Reihenfolge durchprobiert.
Mit dieser Option können Sie Nachrichten mit Hilfe des Protokolls "WinPopup" an einen anderen Computer verschicken. Nachdem eine Verbindung hergestellt ist, geben Sie Ihre Nachricht ein und drücken ^D (Strg-D), um diese zu beenden.
Falls WinPopup auf dem empfangenden Computer läuft, wird der Benutzer die Nachricht erhalten und wahrscheinlich einen Piepton hören. Wenn darauf kein WinPopup läuft, geht die Nachricht verloren und es tritt keine Fehlermeldung auf.
Außerdem wird die Nachricht automatisch nach 1600 Bytes abgeschnitten, da dies eine Beschränkung des Protokolls ist.
Ein hilfreicher Trick besteht darin, die Nachricht mit dem Befehl cat an smbclient weiterzuleiten. Beispiel: cat meineNachricht.txt | smbclient -M FRED verschickt die Nachricht in der Datei meineNachricht.txt an den Rechner namens FRED.
Vielleicht werden Sie auch die Optionen -U und -I hilfreich finden, denn damit können Sie die FROM- und TO-Anteile der Nachricht setzen.
Lesen Sie unter dem Parameter message command in smb.conf(5) eine Beschreibung, wie man in Samba eintreffende WinPopup-Nachrichten behandelt.
Bemerkung: Kopieren Sie WinPopup in die Startup-Gruppe Ihres WfWg-PCs, wenn Sie möchten, dass diese solche Nachrichten immer empfangen können sollen.
Diese Nummer ist die TCP-Portnummer, die bei Verbindungen zum Server benutzt wird. Die standardmäßige (allseits bekannte) TCP-Portnummer für einen SMB-/CIFS-Server ist 139, die vorgegeben ist.
Gibt eine Zusammenfassung der Kommandozeilenoptionen aus.
IP-Adresse ist die Adresse des Servers, mit dem die Verbindung hergestellt werden soll. Sie sollte in der Standardnotation "a.b.c.d" angegeben werden.
Normalerweise versucht der Client, einen benannten SMB-/CIFS-Server dadurch zu finden, dass er mit Hilfe des NetBIOS-Namensauflösungsmechanismus gesucht wird, der oben beim Parameter name resolve order beschrieben wird. Die Verwendung dieses Parameters zwingt den Client zu der Annahme, dass sich der Server auf dem Rechner mit der angegebenen IP-Adresse befindet und die NetBIOS-Namenskomponente der Zielressource wird ignoriert.
Für diesen Parameter gibt es keinen Vorgabewert. Wenn er nicht angegeben wird, so wird er vom Client wie oben beschrieben automatisch bestimmt.
Dieser Parameter bewirkt, dass der Client Meldungen auf die Standardfehlerausgabe (stderr) schreibt, statt auf die Standardausgabe.
Standardmäßig schreibt der Client Meldungen auf die Standardausgabe - üblicherweise das tty des Benutzers.
Mit dieser Option können Sie sehen, welche Dienste auf einem Server verfügbar sind. Wenn Sie sie benutzen wie in smbclient -L host sollte eine Liste erscheinen. Die Option -I ist dann evtl. hilfreich, wenn Ihre NetBIOS-Namen nicht mit Ihren TCP/IP-DNS-Hostnamen übereinstimmen bzw. wenn Sie versuchen, einen Host in einem anderen Netz zu erreichen.
Diese Option sagt smbclient, wie er Dateinamen auf dem entfernten Server interpretieren soll. Normalerweise verwenden asiatische Multibyte-UNIX-Implementierungen andere Zeichensätze als SMB-/CIFS-Server (z.B. EUC statt SJIS). Durch die Angabe dieses Parameters konvertiert smbclient korrekt zwischen den UNIX-Dateinamen und den SMB-Dateinamen. Diese Option wurde nicht ernsthaft getestet und kann durchaus noch einige Probleme verursachen.
Zu den möglichen Terminalcodes gehören CWsjis, CWeuc, CWjis7, CWjis8, CWjunet, CWhex und CWcap. Diese Liste ist aber nicht vollständig. Eine vollständige Liste erhalten Sie, wenn Sie in den Samba-Quellcode schauen.
Diese Option ändert die transmit-/send-Puffergröße, beim Herunterladen oder Hochladen einer Datei vom bzw. auf den Server. Der Vorgabewert dafür ist 65520 Bytes. Es wurde beobachtet, dass ein Herabsetzen dieses Wertes (auf 1200 Bytes) den Dateitransfer von und zu einem Win9x-Server beschleunigen kann.
Gibt die Versionsnummer des Programms aus.
Die angegebene Datei enthält die Konfigurationdetails, die der Server benötigt. Die Information in dieser Datei ist zum Teil Server-spezifisch, z.B. welche printcap-Datei benutzt werden soll, enthält aber auch Beschreibungen aller Dienste, die der Server anbieten soll. Siehe smb.conf für weitere Informationen. Der Standardname der Konfigurationsdatei wird beim Kompilieren bestimmt.
Debug-Ebene ist ein Integer von 0 bis 10. Falls dieser Parameter nicht angegeben wird, ist der Vorgabewert dafür Null.
Je höher der Wert ist, desto mehr Details über die Serveraktivität werden in den Log-Dateien abgespeichert. Auf der Ebene 0 werden nur kritische Fehler und ernstzunehmende Warnungen geloggt. Ebene 1 ist eine vernünftige Ebene beim alltäglichen Betrieb - dabei wird eine kleine Informationsmenge über die ausgeführten Operationen erzeugt.
Die Ebenen höher als 1 erzeugen beachtliche Mengen von Logdaten, und sollten nur bei der Suche nach Problemen verwendet werden. Die Ebenen größer als 3 sind nur für Entwickler gedacht und erzeugen RIESIGE Mengen an Logdaten, von denen die meisten extrem kryptisch sind.
Beachten Sie, dass durch die Angabe dieses Parameters an dieser Stelle der Parameter log level in der Datei smb.conf überschrieben wird.
Dateiname für Log-/Debug-Dateien. Die Dateierweiterung ".client" wird angefügt. Die Log-Datei wird vom Client niemals entfernt.
Wenn angegeben unterdrückt dieser Parameter die normale Passwortabfrage eines Clients beim Benutzer. Das ist dann nützlich, wenn ein Dienst verwendet wird, der kein Passwort benötigt.
Falls kein Passwort auf der Kommandozeile und dieser Parameter nicht angegeben wird, verlangt der Client ein Passwort.
Versucht eine Authentifikation mittels Kerberos. Nur sinnvoll in einer Active Directory-Umgebung.
Mit dieser Option können Sie eine Datei angeben, aus der der Benutzername und das Passwort für eine Verbindung gelesen werden sollen. Das Dateiformat ist:
username = <value> password = <value> domain = <value>
Stellen Sie sicher, dass die Dateirechte den Zugriff durch unerwünschte Benutzer verhindern.
Setzt den SMB-Benutzernamen oder Benutzernamen und Passwort.
Falls %Passwort nicht angegeben wird, wird der Benutzer danach gefragt. Der Client überprüft zunächst die Umgebungsvariable USER, dann LOGNAME und wenn eine davon existiert, wird sie in Großbuchstaben umgewandelt. Werden diese Umgebungsvariablen nichtgefunden, wird der Benutzername GUEST verwendet.
Eine dritte Option besteht darin, eine Credentials-Datei zu verwenden, mit den Benutzernamen und Passwörtern in Klartext. Diese Option ist ist vor allem für Skripte gedacht, wenn der Administrator die Credentials nicht auf der Kommandozeile oder über Umgebungsvariablen übergeben möchte. Bei dieser Methode sollten Sie sicherstellen, dass die Zugriffsrechte an der Datei unerwünschte Benutzer ausschließen. Siehe -A für weitere Details.
Seien Sie achtsam, wenn Sie Passwörter in Skripten verwenden. Auf vielen Systemen kann man außerdem die Kommandozeile eines laufenden Prozesses mit dem Befehl ps sehen. Um sicherzugehen sollten rpcclient immer erlauben, ein Passwort zu verlangen und es dann direkt eingeben.
Mit dieser Option können Sie den NetBIOS-Namen überschreiben, den Samba für sich selbst benutzt. Das ist identisch damit, dass Sie den Parameter netbios name in der Datei smb.conf setzen. Allerdings hat eine Einstellung auf der Kommandozeile Vorrang vor Einstellungen in smb.conf.
Dies gibt einen NetBIOS-Scope an, mit dem nmblookup beim Generieren von NetBIOS-Namen kommuniziert. Für Details zur Verwendung von NetBIOS-Scopes siehe rfc1001.txt und rfc1002.txt. NetBIOS-Scopes werden sehr selten benutzt. Setzen Sie diesen Parameter nur dann, wenn Sie als Systemadministrator für alle NetBIOS-Systeme zuständig sind, mit denen Sie kommunizieren.
Setzt die SMB-Domäne des Benutzernamens. Dies überschreibt die vorgegebene Domäne, die in smb.conf definiert wird. Wenn die definierte Domäne identisch ist mit dem NetBIOS-Namen des Servers, meldet sich der Client unter Verwendung des lokalen SAMs des Servers an (statt des Domänen-SAMs).
TCP-Socket-Optionen, die beim Client-Socket eingestellt werden können. Siehe Parameter socket options in der manpage smb.conf, um eine Liste der gültigen Optionen zu sehen.
Mann kann smbclient so benutzen, dass von allen Dateien in einer SMB-/CIFS-Freigabe Backups kompatibel zu tar(1) erzeugt werden. Die zweitrangigen tar-Flags, die bei dieser Option angegeben werden können, sind:
c - Erzeugt eine tar-Datei unter UNIX. Es muss der Name einer tar-Datei, eines Bandgeräts oder "-" für die Standardausgabe folgen. Bei der Standardausgabe müssen Sie die Logebene auf den niedrigsten Wert setzen, -d0, um die Korrektheit Ihrer tar-Datei nicht zu gefährden. Dieses Flag sowie das Flag x schließen sich gegenseitig aus.
x - Extrahiert eine lokale tar-Datei zurück in eine Freigabe (stellt sie wieder her). Solange die Option -D nicht angegeben wird, werden tar-Dateien ab der obersten Ebene einer Freigabe wiederhergestellt. Es muss der Name einer tar-Datei, eines Geräts oder "-" für die Standardeingabe folgen. Dieses Flag sowie das Flag c schließen sich gegenseitig aus. Die Erstellungszeitstempel (mtime) wiederhergestellter Dateien werden auf den Zeitpunkt gesetzt, der in der tar-Datei gespeichert ist. Bei Verzeichnissen wird der Erstellungszeitstempel momentan noch nicht korrekt wiederhergestellt.
I - Fügt Dateien und Verzeichnisse ein. Dies ist das Standardverhalten bei der Angabe von Dateinamen oben. Bewirkt, dass tar-Dateien in einer extrahierten oder erzeugten Datei eingefügt werden (und daher wird alles andere ausgelassen). Siehe Beispiel unten. Das Globbing bei Dateinamen funktioniert auf eine von zwei Weisen. Siehe r unten.
X - Lässt Dateien und Verzeichnisse aus. Bewirkt, dass tar-Dateien in einer extrahierten oder erzeugten Datei ausgelassen werden. Siehe Beispiel unten. Das Globbing bei Dateinamen funktioniert auf eine von zwei Weisen. Siehe r unten.
b - Blockgröße. Es muss eine gültige Blockgröße folgen (größer als Null). Bewirkt, dass die tar-Datei in Blöcken der Größe Blockgröße*TBLOCK (normalerweise 512 Bytes) geschrieben wird.
g - Inkrementell. Macht ein Backup nur von Dateien, deren Archivbit gesetzt ist. Nur sinnvoll mit dem Flag c.
q - Leise. Verhindert, dass tar Diagnosemeldungen ausgibt, während es arbeitet. Identisch mit dem leisen tar-Modus.
r - Einfügen oder auslassen mit regulären Ausdrücken. Verwendet einen Vergleich mit Hilfe von regulären Ausdrücken beim Einfügen oder Auslassen von Dateien, sofern es mit HAVE_REGEX_H kompiliert wurde. Dieser Modus kann allerdings sehr langsam sein. Falls ohne HAVE_REGEX_H kompiliert, wird ein begrenzter Vergleich mit den Jokern '*' und '?' durchgeführt.
N - Neuer als. Es muss der Name einer Datei folgen, deren Datum beim Erstellen mit den Dateien in einer Freigabe verglichen wird. Nur Dateien, die neuer sind als die angegebene Datei, werden in die tar-Datei übernommen. Nur sinnvoll mit dem Flag c.
a - Setzt das Archivbit. Bewirkt, dass das Archivbit zurückgesetzt wird, wenn ein Backup von einer Datei gemacht wird. Sinnvoll mit den Flags g und c.
Tar und lange Dateinamen
Die tar-Optionen von smbclient unterstützen nun lange Dateinamen sowohl beim Backup als auch beim Wiederherstellen. Allerdings muss die Länge des vollständigen Pfadnamens der Datei kleiner als 1024 Bytes sein. Wenn ein tar-Archiv erzeugt wird, setzt die tar-Option von smbclient außerdem alle Dateien mit relativen und nicht mit absoluten Namen ins Archiv.
Tar-Dateinamen
Alle Dateinamen können als DOS-Pfadnamen angegeben werden (mit '\\' als Trennzeichen zwischen den Komponenten) oder als UNIX-Pfadnamen (mit '/' zur Trennung der Komponenten).
Beispiele
Wiederherstellen aus der tar-Datei backup.tar in meinefreigabe auf meinpc (kein Passwort auf der Freigabe):
smbclient //meinpc/meinefreigabe "" -N -Tx backup.tar
Wiederherstellen von allem außer users/docs:
smbclient //meinpc/meinefreigabe "" -N -TXx backup.tar users/docs
Erstellen einer tar-Datei von den Dateien unter users/docs:
smbclient //meinpc/meinefreigabe "" -N -Tc backup.tar users/docs
Erstellen der gleichen tar-Datei wie oben, aber nun unter Verwendung eines DOS-Pfadnamens:
smbclient //meinpc/meinefreigabe "" -N -tc backup.tar users\edocs
Erstellen einer tar-Datei aller Dateien und Verzeichnisse in der Freigabe:
smbclient //meinpc/meinefreigabe "" -N -Tc backup.tar *
Wechselt vorher ins Startverzeichnis. Vermutlich nur sinnvoll mit der tar-Option -T.
Der Befehlsstring ist eine mit Semikola getrennte Liste von Befehlen, die ausgeführt werden sollen, anstatt solche auf der Standardeingabe abzufragen. -c impliziert -N.
Dies ist besonders nützlich in Skripten und beim Ausgeben von stdin auf den Server, z.B. -c 'print -'.
Wenn der Client einmal läuft, erhält der Benutzer den Prompt:
smb:\>
Der Backslash ("\\") gibt das aktuelle Arbeitsverzeichnis auf dem Server an, und verändert sich, sobald das aktuelle Arbeitsverzeichnis gewechselt wird.
Der Prompt zeigt an, dass der Client bereit ist und darauf wartet, einen Benutzerbefehl auszuführen. Jeder Befehl besteht aus einem einzelnen Wort, optional gefolgt von dafür spezifischen Parametern. Befehl und Parameter werden durch Leerzeichen getrennt, es sei denn, in diesen Bemerkungen wird explizit etwas anderes angegeben. Bei allen Befehlen ist die Schreibweise wichtig. Bei Befehlsparametern kann die Schreibweise abhängig vom Befehl relevant sein oder auch nicht.
Sie können Dateinamen mit Leerzeichen darin angeben, indem der Name in doppelte Anführungszeichen gesetzt wird, z.B. "ein langer Dateiname".
Parameter, die in eckigen Klammern erscheinen, z.B. "[Parameter]", sind optional. Wenn sie nicht angegeben werden, verwendet der Befehl passende Vorgabewerte. Parameter in spitzen Klammern, z.B. "<Parameter>" sind notwendig.
Beachten Sie, dass alle Befehle, die auf dem Server operieren, tatsächlich über eine Anfrage an den Server ausgeführt werden. Daher unterscheidet sich das Verhalten eventuell von einem Server zum anderen, je nachdem wie der Server implementiert wurde.
Die verfügbaren Befehle werden hier in alphabetischer Reihenfolge angegeben.
Falls Befehl angegeben wird, zeigt der Befehl ? eine kurze Erklärung zum angegebenen Befehl an. Falls kein Befehl angegeben wird, wird eine Liste von Befehlen angezeigt.
Falls Shellbefehl angegeben wird, wird der Befehl ! eine lokale Shell ausführen und darin den angegebenen Shellbefehl. Wenn kein Befehl angegeben wird, wird eine lokale Shell ausgeführt.
Der Client verlangt vom Server, dass er einen "alternativen" Namen (den 8.3-Namen) für eine Datei oder ein Verzeichnis zurückgibt.
Der Client verlangt vom Server, dass dieser die Druckaufträge mit den angegebenen numerischen Auftrags-IDs abbricht.
Für diesen Befehl muss der Server die CIFS-UNIX-Erweiterungen unterstützen, sonst schlägt er fehl. Der Client verlangt, dass der Server die UNIX-Rechte auf den angegebenen oktalen Modus im UNIX-Standardformat ändert.
Für diesen Befehl muss der Server die CIFS-UNIX-Erweiterungen unterstützen, sonst schlägt er fehl. Der Client verlangt, dass der Server die UNIX-Benutzer- und Gruppenzugehörigkeit auf die angegebenen dezimalen Werte setzt. Beachten Sie, dass es momentan keine Möglichkeit gibt, die Werte der UNIX-uid und -gid zu einem gegebenen Namen auf der entfernten Seite zu suchen. Das wird in zukünftigen Versionen der CIFS-UNIX-Erweiterungen vielleicht anders sein.
Falls "Verzeichnisname" angegeben wird, wird das aktuelle Arbeitsverzeichnis auf dem Server auf das angegebene Verzeichnis gewechselt. Diese Operation versagt, falls aus irgendeinem Grund nicht auf das Verzeichnis zugegriffen werden kann.
Ohne Angabe eines Verzeichnisnamens wird das aktuelle Arbeitsverzeichnis auf dem Server ausgegeben.
Der Client verlangt vom Server, dass dieser versucht, alle zur Maske passenden Dateien aus dem aktuellen Arbeitsverzeichnis auf dem Server zu löschen.
Es wird vom Server eine Liste aller zur angegebenen Maske passenden Dateien im aktuellen Arbeitsverzeichnis des Servers geholt und angezeigt.
Terminiert die Verbindung zum Server und beendet das Programm.
Kopiert die Datei namens entfernter Dateiname vom Server auf den Rechner, auf dem der Client läuft. Wenn angegeben, wird die lokale Kopie lokaler Dateiname genannt. Beachten Sie, dass jede Dateiübertragung in smbclient binär ist. Siehe auch den Befehl lowercase.
Siehe Befehl ? oben.
Falls Verzeichnisname angegeben wird, wird das aktuelle Arbeitsverzeichnis auf dem lokalen Rechner zum angegebenen Verzeichnis gewechselt. Diese Operation versagt, falls auf das Verzeichnis aus irgendeinem Grund nicht zugegriffen werden kann.
Ohne Angabe eines Verzeichnisnamens wird der Name des aktuellen Arbeitsverzeichnisses auf dem lokalen Rechner ausgegeben.
Für diesen Befehl muss der Server die CIFS-UNIX-Erweiterungen unterstützen, sonst schlägt er fehl. Der Client verlangt, dass der Server einen harten Link zwischen der Quell- und Zieldatei erstellt. Die Quelldatei darf nicht existieren.
Schaltet für die Befehle get und mget die Verwendung von Kleinbuchstaben bei Dateinamen ein bzw. aus.
Wenn Kleinbuchstaben eingeschaltet sind, werden für die Befehle get und mget lokale Dateinamen in kleine Buchstaben umgewandelt. Das ist dann oft praktisch, wenn (zum Beispiel) MSDOS-Dateien von einem Server kopiert werden, da auf UNIX-Systemen Dateinamen mit kleinen Buchstaben der Normalfall sind.
Siehe den Befehl dir oben.
Mit diesem Befehl kann der Benutzer eine Maske setzen, die während der rekursiven Abarbeitung der Befehle mget und mput verwendet wird.
Die für die Befehle mget und mput angegebenen Masken agieren mehr als Filter für Verzeichnisse als für Dateien, wenn eine Rekursion eingeschaltet ist.
Die mit dem Befehl mask angegebene Maske ist notwendig, um Dateien in diesen Verzeichnissen zu filtern. Wenn die Maske in einem mget-Befehl z.B. "source*" ist und die mit dem mask-Befehl angegebene Maske "*.c" ist und Rekursion eingeschaltet ist, dann wird der mget-Befehl alle Dateien passend zu "*.c" in allen Verzeichnissen unter und inklusive aller zu "source*" passenden Verzeichnissen im aktuellen Arbeitsverzeichnis holen.
Beachten Sie, dass der Vorgabewert einer Maske ein Leerzeichen ist (äquivalent zu "*") und so bleibt, bis sie mit dem mask-Befehl geändert wird. Sie behält den zuletzt eingestellten Wert weiterhin bei. Um unerwartete Ergebnisse zu vermeiden, wäre es klug, nach der Verwendung der Befehle mget oder mput den Wert der Maske wieder auf "*" zurückzusetzen.
Siehe den Befehl mkdir.
Kopiert alle zur Maske passenden Dateien vom Server auf den Rechner, auf dem der Client läuft.
Beachten Sie, dass Maske unterschiedlich interpretiert wird, je nachdem, ob der Vorgang rekursiv oder nicht-rekursiv erfolgt - schauen Sie bei den Befehlen recurse und mask für weitere Informationen nach. Man beachte auch, dass alle Datenübertragungen in smbclient binär sind. Siehe auch den Befehl lowercase.
Erstellt auf dem Server ein neues Verzeichnis mit dem angegebenen Namen (sofern es die Benutzerzugriffsrechte erlauben).
Kopiert alle zur Maske passenden Dateien im aktuellen Arbeitsverzeichnis des lokalen Rechners ins aktuelle Arbeitsverzeichnis auf dem Server.
Beachten Sie, dass Maske unterschiedlich interpretiert wird, je nachdem, ob der Vorgang rekursiv oder nicht-rekursiv erfolgt - schauen Sie bei den Befehlen recurse und mask für weitere Informationen nach.
Druckt die angegebene Datei auf dem lokalen Rechner über einen Druckdienst auf dem Server aus.
Siehe auch den Befehl printmode.
Setzt den Druckmodus passend zu Binärdaten (wie Graphiken) oder Text. Spätere print-Befehle verwenden den gerade gesetzten Druckmodus.
Schaltet die Abfrage von Dateinamen bei der Abarbeitung der Befehle mget und mput ein bzw. aus.
Wenn eingeschaltet, wird der Benutzer bei jeder Datei gebeten, ihre Übertragung zu bestätigen. Wenn ausgeschaltet werden alle angegebenen Dateien ohne weitere Abfrage übertragen.
Kopiert die Datei namens lokaler Dateiname vom Rechner, auf dem der Client läuft, auf den Server. Falls angegeben, wird die entfernte Kopie entfernter Dateiname genannt. Man beachte, dass alle Datenübertragunggen in smbclient binär sind. Siehe auch den Befehl lowercase.
Zeigt die Druckerschlange an, samt Auftrags-ID, Name, Größe und aktuellem Status.
Siehe den Befehl exit.
Siehe den Befehl rmdir.
Schaltet die Verzeichnisrekursion bei den Befehlen mget und mput ein bzw. aus.
Wenn eingeschaltet, bearbeiten diese Befehle alle Verzeichnisse im Quellverzeichnis (z.B. das Verzeichnis, aus dem kopiert wird) und machen rekursiv bei allen weiter, auf die die zum Befehl angegebene Maske passt. Es werden nur die Dateien übertragen, auf die die mit dem mask-Befehl angegebene Maske passt. Siehe auch den Befehl mask.
Wenn die Rekursion ausgeschaltet ist, werden nur Dateien aus dem aktuellen Arbeitsverzeichnis des Ausgangsrechners kopiert, auf die die in den Befehlen mget oder mput angegebene Maske passt, und eine beliebige mit dem mask-Befehl angegebene Maske wird ignoriert.
Entfernt auf dem Server alle Dateien, auf die Maske passt, aus dem aktuellen Arbeitsverzeichnis.
Entfernt das angegebene Verzeichnis vom Server (sofern das die Benutzerrechte erlauben).
Eine Version des DOS-Befehls attrib zum Setzen von Dateirechten. Beispiel:
setmode meineDatei +r
würde meineDatei nur lesbar machen.
Für diesen Befehl muss der Server die CIFS-UNIX-Erweiterungen unterstützen, sonst schlägt er fehl. Der Client verlangt, dass der Server einen symbolischen Link zwischen der Quell- und Zieldatei erstellt. Die Quelldatei darf nicht existieren. Man beachte, dass der Server keinen Link auf einen Pfad erzeugt, der außerhalb der gerade verbundenen Freigabe liegt. Dies wird vom Samba-Server erzwungen.
Führt eine tar-Operation durch - siehe die obige Kommandozeilenoption -T. Das Verhalten kann evtl. durch den Befehl tarmode (siehe unten) beeinflusst werden. Die Verwendung von g (inkrementell) und N (neuer) hat einen Einfluss auf die Einstellungen von tarmode. Beachten Sie, dass die Option "-" mit tar x evtl. nicht funktioniert - verwenden Sie stattdessen die Kommandozeilenoption.
Blockgröße. Es muss eine gültige Blockgröße folgen (größer als Null). Bewirkt, dass die tar-Datei in Blöcken der Größe Blockgröße*TBLOCK (normalerweise 512 Bytes) geschrieben wird.
Ändert das Verhalten von tar bzgl. der Archivbits. Im fullinc-Modus macht tar ein Backup von allem, unabhängig von der Einstellung des Archivbits (dies ist der Standardmodus). Im inkrementellen Modus (inc), macht tar nur von den Dateien mit einem gesetzten Archivbit ein Backup. Im reset-Modus, setzt tar das Archivbit auf allen Dateien zurück, von denen es ein Backup macht (impliziert eine read/write-Freigabe).
Manche Server sind ein wenig pingelig bei der Schreibweise der angegebenen Benutzernamen, Passwörter, Freigabenamen (auch bekannt als Dienstnamen) sowie Rechnernamen. Sollte Ihre Verbindung fehlschlagen, versuchen Sie, alle Parameter in Großbuchstaben anzugeben.
Bei der Verbindung mit manchen Serverarten ist es oft notwendig, die Option -n zu benutzen. OS/2-LanManager z.B. beharrt auf der Verwendung eines gültigen NetBIOS-Namens, d.h. Sie müssen einen gültigen dem Server bekannten Namen angeben.
smbclient unterstützt lange Dateinamen dann, wenn der Server das Protokoll LANMAN2 oder höher unterstützt.
Die Variable USER kann den Benutzernamen der Person enthalten, die den Client benutzt. Diese Information wird nur dann benutzt, wenn die Protokollebene hoch genug ist, um Passwörter auf der Ebene von Sitzungen zu unterstützen.
Die Variable PASSWD kann das Passwort der Person enthalten, die den Client benutzt. Diese Information wird nur dann benutzt, wenn die Protokollebene hoch genug ist, um Passwörter auf der Ebene von Sitzungen zu unterstützen.
Die Variable LIBSMB_PROG kann den Pfad enthalten, ausgeführt mit system(), den der Client verwenden sollte, statt sich mit einem Server zu verbinden. Diese Funktionalität ist primär als Hilfe bei der Entwicklung gedacht und funktioniert am besten, wenn eine LMHOSTS-Datei verwendet wird.
Der Ort des Clientprogramms ist Sache des einzelnen Systemadministrators. Die folgenden Bemerkungen sind daher nur Vorschläge.
Es wird empfohlen, dass die smbclient-Software im Verzeichnis /usr/local/samba/bin/ oder /usr/samba/bin/ installiert wird, welches für alle lesbar, aber nur für root schreibbar ist. Das Clientprogramm selbst sollte für alle ausführbar sein. Der Client sollte NICHT setuid oder setgid sein!
Die Client-Logdateien sollten sich in einem Verzeichnis befinden, das nur für den Benutzer les- und schreibbar ist.
Um den Client zu testen, müssen Sie den Namen eines laufenden SMB-/CIFS-Servers kennen. Mann kann smbd(8) als gewöhnlicher Benutzer laufen lassen. Den Server als Daemon auf einem für Benutzer zugänglichen Port laufen zu lassen (normalerweise irgendeine Portnummer größer als 1024) sollte einen geeigneten Testserver ergeben.
Die meisten vom Client ausgegebenen Diagnosemeldungen werden in einer bestimmten Logdatei festgehalten. Der Name der Logdatei wird zum Zeitpunkt des Kompilierens angegeben, kann aber auf der Kommandozeile überschrieben werden.
Die Anzahl und Art von vorhandenen Diagnosemeldungen hängt von der Debugebene ab, die der Client verwendet. Sollten Sie Probleme haben, setzen Sie die Debugebene auf 3 und schauen Sie sich die Logdateien an.
Diese Manpage ist korrekt für die Version 2.2 der Samba-Suite.
Die originale Samba-Software und die zugehörigen Werkzeuge wurden von Andrew Tridgell geschrieben. Samba wird nun vom Samba-Team als ein Open-Source-Projekt entwickelt, ähnlich wie der Linux-Kernel.
Die originalen Samba-Manpages wurden von Karl Auer geschrieben. Die Manpage-Quelltexte wurden ins YODL-Format konvertiert (ein weiteres exzellentes Stück Open-Source-Software, verfügbar unter ftp://ftp.icce.rug.nl/pub/unix/) und für die Samba 2.0-Release von Jeremy Allison aktualisiert. Die Umwandlung ins DocBook-Format wurde von Gerald Carter für Samba 2.2 durchgeführt. Die Umwandlung in DocBook für XML 4.2 wurde von Alexander Bokovoy für Samba 3.0 durchgeführt.