SMB/CIFS Utilities

CIFS/SMB

Das Common Internet File System (CIFS) bietet die Möglichkeit, Netzlaufwerke an Windows-Rechner anzubinden; das entsprechende Netzwerkprotokoll wurde früher Server Message Block (SMB) genannt. UNIX/Linux-Betriebssysteme besitzen in der Regel einige Hilfsprogrammen, die den Einsatz von CIFS auch auf diesen Plattformen ermöglichen:

smbclient

smbclient ist ein Kommandozeilenwerkzeug z.B. für

  • Auflistung der von Windows-Servern angebotenen Netzwerkfreigaben und Netzwerkdrucker,
  • Auflistung der Verzeichnisinhalte,
  • oder Dateiübertragung.

Im Folgenden wird lmuelle8 als Beispiel für einen gültigen GWDG-Benutzerkontonamen verwendet, und winfs-uni.top.gwdg.de dient als Beispiel für einen Windows-CIFS/SMB-Server. Da Windows-Server normalerweise Teil des Active Directory sind, muss auch eine Domäne angegeben werden. GWDG ist in der Regel korrekt; Mitarbeiter des Max-Planck-Instituts (MPI) für biophysikalische Chemie müssen MBPC verwenden, Mitarbeiter des MPI für Experimentelle Medizin MPEM.

Anzeigen von Netzwerkfreigaben eines Servers

smbclient -L winfs-uni.top.gwdg.de -W GWDG -U lmuelle8
Password:


Obwohl das Passwort direkt auf der Kommandozeile angegeben werden könnte, sollte dies aus Sicherheitsgründen vermieden werden; es ist besser, zur Eingabe des Passworts aufgefordert zu werden. Auf die Ausgabe des Befehls wurde verzichtet, da er sehr lang ist.

Anzeigen von Verzeichnisinhalten

smbclient //winfs-uni.top.gwdg.de/lmuelle8$ -W GWDG -U lmuelle8
Password: 
Domain=[GWDG] OS=[Windows Server 2008 R2 Enterprise 7601 Service Pack 1] Server=[Windows Server 2008 R2 Enterprise 6.1]
smb: \> dir
  .                                  DR        0  Mon May 23 11:52:52 2011
  ..                                 DR        0  Mon May 23 11:52:52 2011
  $RECYCLE.BIN                      DHS        0  Tue May  3 08:51:59 2011
  Eigene Bilder                     DAR        0  Wed Jun 30 05:24:50 2010
  Eigene Musik                      DAR        0  Wed Jun 30 05:24:50 2010
  IO.SYS                           AHSR        0  Thu Feb  8 11:15:26 2001
  MSDOS.SYS                        AHSR        0  Thu Feb  8 11:15:26 2001
  My Music                           DR        0  Tue May  3 08:51:59 2011
  My Pictures                        DR        0  Tue May  3 08:51:59 2011
  My Videos                          DR        0  Tue May  3 08:51:59 2011
  WINDOWS                             D        0  Tue May  3 08:51:49 2011
  _AdminsOnly                       DAH        0  Wed Jun 30 05:24:46 2010
  _GWDGsys                           DA        0  Wed Jun 30 05:24:48 2010

		65535 blocks of size 33554432. 18580 blocks available
smb: \> quit


Diese Verzeichniseinträge haben sich jahrelang nicht geändert, aber so ist das Leben …

Bitte beachten Sie das nachgestellte $-Symbol innerhalb des Namens der Netzwerkfreigabe //winfs-uni.top.gwdg.de/lmuelle8$. Es muss angehängt werden, weil alle Freigaben auf Windows/CIFS-Servern, die Benutzerdaten exportieren, versteckt sind und daher beim Zugriff ein abschließendes $ erfordern.

Datenübertragung / File transfer

smbclient //winfs-uni.top.gwdg.de/lmuelle8$ -W GWDG -U lmuelle8
Password: 
Domain=[GWDG] OS=[Windows Server 2008 R2 Enterprise 7601 Service Pack 1] Server=[Windows Server 2008 R2 Enterprise 6.1]
smb: \> put example.doc
putting file example.doc as \example.doc (2142.8 kb/s) (average 2142.9 kb/s)
smb: \> cd "My Music"
smb: \My Music\> get laughter.mp3
getting file \My Music\laughter.mp3 of size 3953876 as laughter.mp3 (16223.6 kb/s) (average 16223.6 kb/s)
smb: \My Music\> quit


Wie im Beispiel zu sehen, überträgt put Dateien zum Windows-Server, und get holt sie zum Linux-Client.

Weitere Informationen / Hilfen

Hilfe ist über die Manual-Seite (man smbclient) oder den Online-Befehl help verfügbar, der an der smb:-Eingabeaufforderung eingegeben werden kann.

SMB/CIFS mount

Anmerkungen

Auf FreeBSD- oder Linux-Systemen ist es z.B. möglich, eine Windows-Netzwerkfreigabe in den lokalen Verzeichnisbaum einzubinden. Hier ist es wichtig zu wissen, dass es unumgänglich ist, beim Einhängen der Freigabe eine Benutzerzuordnung vorzunehmen. So müssen zum einen die Benutzerdaten auf dem entfernten Windows-Server sowie ein lokaler Benutzername angegeben werden. Auf dem FreeBSD/Linux-Client scheinen alle Dateien dem angegebenen lokalen Benutzer zu gehören, während sie in Wirklichkeit dem Benutzer gehören, dessen Zugangsdaten beim Zugriff auf die Freigabe verwendet wurden. Beide Benutzernamen können gleich sein, müssen es aber nicht.

Die Beispielbenutzer-, Server- und Freigabenamen sind wie oben im Zusammenhang mit smbclient beschrieben.

Bitte schauen Sie in den Handbuchseiten Ihres Systems nach, wenn die unten stehenden Beispiele nicht weiterhelfen.

Beispiel FreeBSD

mount_smbfs -U lmuelle8 -I winfs-uni.top.gwdg.de -W GWDG -u 1001 -g 20 //lmuelle8@winfs-uni/lmuelle8$ /import/lmuelle8
Password:


Das Passwort kann in der Kommandozeile angegeben werden, es sollte aber aus Sicherheitsgründen nicht angegeben werden.

Die Bedeutung der Argumente beim Aufruf ist:

  • -U lmuelle8 – Nutzername, der zur Anmeldung am Windows-Server genutzt wird
  • -I winfs-uni.top.gwdg.deDNS-Name oder IP des Windows-Servers
  • -W GWDG – Windows-AD-Domäne
  • -u 1001 – lokaler Nutzer auf dem Linux-System
  • -g 20 – lokale Gruppe auf dem Linux-System
  • //lmuelle8@winfs-uni/lmuelle8$ – Name des entfernten user@netbios-Server-Namens/Netzwerkfreigabenamens
  • /import/lmuelle8 – pfad zum lokalen Verzeichnis, wo die Netzwerkfreigabe eingehängt werden soll

Beispiel example

mount.cifs -o domain=GWDG,user=lmuelle8,uid=1001,gid=100 //winfs-uni.top.gwdg.de/lmuelle8$ /import/lmuelle8
Password:


Das Passwort kann in der Kommandozeile angegeben werden, es sollte aber aus Sicherheitsgründen nicht angegeben werden.

Die Bedeutung der Argumente beim Aufruf ist:

  • -o domain=GWDG,user=lmuelle8,uid=1001,gid=100 – Windows-AD-Domäne, Nutzerkenng zur Authentifizierung, lokler Nutzer (numerisch), lokale Grupper (numerisch)
  • //winfs-uni.top.gwdg.de/lmuelle8$DNS-Namer oder IP des Windows-Servers und Freigabenname
  • /import/lmuelle8 – lokales Verzeichnis, in das die Freigabe eingehängt werden soll

Dauerhaften Einhängen mithilfe einer Zugangsdatendatei und Eintrag in die fstab

Der zuvor erwähnte mount.cifs-Befehl funktioniert einwandfrei, wenn Sie die Freigabe sofort einhängen möchten. Bei einem dauerhaften Einhängen wird die regelmäßige Angabe von Userid, Domäne, Freigabe-URI und Einhängepunkt und der ständigen Eingabe des Passworts sehr unkomfortabel. Sie können aber die CIFS-Freigaben wie bei NFS einhängen, indem Sie eine Zeile in die /etc/fstab einfügen:

# cat /etc/fstab  | grep cifs
//winfs-uni.top.gwdg.de/lmuelle8$  /import/lmuelle8 cifs domain=GWDG,user=lmuelle8,uid=1001,gid=100,file_mode=0664 0 0

Hierdurch erübrigt sich der mount-Befehl mit allen Optionen, aber es ist immer noch die Eingabe des Passworts erforderlich. Wenn es in Ordnung ist, das Passwort in Ihrem Linux-System zu speichern, können Sie eine Zugangsdatendatei verwenden, anstatt Benutzername, Domäne und Passwort anzugeben. Eine solche Datei sieht wie folgt aus (im Beispiel von oben):

# cat /etc/smbpasswd
domain=GWDG
username=lmuelle8
password=<User's Password in plain text>

In der /etc/fstab lautet die Zeile dann:

# cat /etc/fstab  | grep cifs
//winfs-uni.top.gwdg.de/lmuelle8$  /import/lmuelle8 cifs credentials=/etc/smbpasswd,uid=1001,gid=100,file_mode=0640 0 0

Wenn Sie verschiedene Freigaben einhängen wollen, können Sie für alle die gleiche Zugangsdatendatei verwenden, wenn Sie unterschiedliche Anmeldedaten für verschiedene Freigaben benötigen, richten Sie einfach verschiedene Zugangsdatendateien ein, z.B.

# cat /etc/fstab  | grep cifs
//winfs-uni.top.gwdg.de/lmuelle8$   /import/lmuelle8  cifs credentials=/home/lmuelle8/.smb-lmuelle8,uid=1001,gid=100,file_mode=0640 0 0
//wfs-test.top.gwdg.de/workgroup$   /import/workgroup cifs credentials=/etc/smbworkgroup,uid=1001,gid=1000,file_mode=0664 0 0

Da die Zugangsdatendatei ein Klartext-Passwort enthält, sollte sie strikt vor dem Zugriff anderer Benutzer geschützt werden. Setzen Sie daher bitte die Zugriffsrechte auf 600 durch

chmod 600 <path to credentials file>
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information