Dieser Artikel wurde archiviert, da er - oder Teile daraus - nur noch unter einer älteren Ubuntu-Version nutzbar ist. Diese Anleitung wird vom Wiki-Team weder auf Richtigkeit überprüft noch anderweitig gepflegt. Zusätzlich wurde der Artikel für weitere Änderungen gesperrt.
Mit dem virtuellen Dateisystem smbfs können Freigaben wie ein Datenträger in das Dateisystem des Client eingebunden werden. Allerdings wird smbfs nicht mehr weiter entwickelt. Sein Nachfolger cifs-vfs bietet eine erweiterte Funktionalität und eine bessere Performance. Siehe dazu Samba Client/cifs.
Bis einschließlich Gutsy Gibbon (7.10) standen smbfs und cifs-vfs als zwei verschiedene virtuelle Dateisysteme zur Wahl. Seit Hardy Heron (8.04) ist smbfs nicht mehr implementiert, die Bezeichnung smbfs wird aber noch als Synonym für cifs weitergeführt. Damit sind dann Eigenschaften und Syntax für smbfs und cifs identisch.
Um eine Freigabe einzubinden, muss zunächst ein Mountpunkt erstellt werden. Eine Freigabe kann wie eine Partition in einem Linux-System an einer beliebigen Stelle in der Dateisystemhierarchie eingebunden werden. Üblich sind jedoch die Verzeichnisse:
/media (es erscheint ein Icon auf dem KDE- oder GNOME-Desktop)
/mnt (es erscheint kein Icon auf dem KDE- oder GNOME-Desktop)
Mehr Informationen dazu findet man in den Artikeln mount und Datenverwaltung.
# Allgemein sudo mkdir <mountpunkt> # Beispiel sudo mkdir /media/austausch
Zum Einbinden wird intern das Hilfsprogramm smbmount verwendet. Für smbmount gelten nicht durchweg die gleichen Parameter und Mount-Optionen wie bei cifs, NFS oder bei echten Dateisystemen.
Weitere Einzelheiten und zusätzliche Optionen findet man in der Manpage mittels
man smbmount
Möchte man eine Freigabe nur testen bzw. nur temporär einbinden, so erfolgt dies mit dem Befehl [2]:
# Allgemein sudo mount -t smbfs -o username=<benutzer>,password=<passwort> //<server>/<freigabe> <mountpunkt> # Beispiel sudo mount -t smbfs -o username=otto,password=geheim //compaq/share /media/austausch
Um sich auf eine Freigabe in einer Windowsdomäne zu verbinden, muss der Domänenname mit angegeben werden:
# Allgemein sudo mount -t smbfs -o username=<benutzer>/<domäne>,password=<passwort> //<server>/<freigabe> <mountpunkt> # Beispiel sudo mount -t smbfs -o username=otto/office,password=geheim //compaq/share /media/austausch
Wird das Passwort wie oben beschrieben offen in eine Befehlszeile eingefügt, so wird es auch in der Historie-Funktion der laufenden Shell gespeichert. So ist es leicht möglich, dass eine andere Person an das Passwort kommt. Deshalb sollte man - erst recht auf fremden Computern - Passwörter für sensible Daten niemals über die Option password
angeben! Lässt man diese Option weg, so wird interaktiv nach dem Passwort gefragt, und die Eingabe erfolgt verdeckt.
Zunächst wird wie oben beschrieben ein Mountpunkt erstellt. Um nun eine Freigabe fest in das System einzubinden, ist diese in die Datei /etc/fstab [3] einzutragen.
Wird ein Passwort für die Freigabe benötigt, so wäre es recht unsicher, das Passwort in die fstab zu schreiben, da jeder Benutzer des Systems Zugriff auf diese Datei hat. Daher sollte man Login-Daten in einer extra Datei hinterlegen und in den Mount-Optionen darauf verweisen.
Zunächst erstellt man eine Textdatei mit dem Namen .smbcredentials im eigenen Homeverzeichnis und trägt folgenden Inhalt ein.
username=<benutzer> password=<passwort>
Damit die Datei nur vom Besitzer eingesehen werden kann, setzt man die Rechte[7] entsprechend
sudo chmod 600 ~/.smbcredentials
Hierfür öffnet man die Datei /etc/fstab in einem Texteditor [3] und trägt die Freigabe ein
# Allgemein //<server>/<freigabe> <mountpunkt> smbfs credentials=</pfad/zu/.smbcredentials> 0 0 # Beispiel //compaq/share /media/austausch smbfs credentials=/home/otto/.smbcredentials 0 0
Auf diese Weise wird eine Freigabe beim Systemstart automatisch eingebunden.
Mit smbfs ist es grundsätzlich nicht möglich, Besitz- und Zugriffsrechte zwischen Server und Client zu übertragen. Dies gilt auch dann, wenn auf dem Server die CIFS-UNIX-Erweiterungen aktiviert sind. Die volle Funktionalität des Protokolls CIFS steht nur mit cifs-vfs zur Verfügung.
Werden im Mount-Befehl keine zusätzlichen Angaben gemacht, bindet smbfs auf dem Client alle Freigaben als Besitz desjenigen Benutzers ein, der sie gemountet hat, und überträgt eventuell vorhandene Schreibrechte nur auf diesen. Da das Einbinden in der Regel mit Root-Rechten (mittels sudo oder über /etc/fstab) erfolgt, hat dann also höchstens Root Schreibrechte.
Durch zusätzliche Angaben von uid
, gid
, fmask
und dmask
können beim Mounten andere Besitz- und Zugriffsrechte festgelegt werden (siehe dazu auch Benutzer und Gruppen). Dies geht sowohl beim temporären Einbinden:
# Allgemein sudo mount -t smbfs -o username=<benutzer>,password=<passwort>,uid=<uid>,gid=<gid> //<server>/<freigabe> <mountpunkt> # Beispiel sudo mount -t smbfs -o username=otto,password=geheim,uid=1000,gid=1000 //compaq/share /media/austausch
als auch bei Einträgen in /etc/fstab:
# Allgemein //<server>/<freigabe> <mountpunkt> smbfs credentials=</pfad/zu/.smbcredentials>,uid=<uid>,gid=<gid>,fmask=<fmode>,dmask=<dmode> 0 0 # Beispiel //compaq/share /media/austausch smbfs credentials=/home/otto/.smbcredentials,uid=1000,gid=1000,fmask=664,dmask=775 0 0
Werden zu fmask
und dmask
keine Angaben gemacht, so gelten die Default-Werte fmask=644
und dmask=755
. Siehe hierzu auch Rechte sowie chmod.
Bei smbmount bezeichnen fmask=....
, dmask=....
Modes für Dateien und Ordner und nicht etwa Masken (wie z.B. bei umask
)
Bei mount.cifs heißen deshalb die entsprechenden Bezeichnungen jetzt file_mode=....
, dir_mode=....
.
Die auf diese Weise festgelegten Dateiattribute werden nur auf dem Client simuliert. Sie haben keinen Einfluss auf die echten Dateiattribute auf dem Server.
Werden in einer Freigabe z.B. von einem anderen Benutzer neue Ordner oder Dateien angelegt, so gehören diese zunächst scheinbar diesem, und er hat damit auch Schreibrechte. Dies gilt aber nur für die betreffende Sitzung. Nach dem erneuten Mounten der Freigaben gelten auch für diese dann die im Mount-Befehl festgelegten Rechte.
Die beim Mounten mittels smbmount festgelegten Rechte bleiben auf dem Client bis zum Aushängen der Freigaben (üblicherweise beim Herunterfahren) verbindlich. Es ist nicht möglich, Dateiattribute nachträglich mit chown, chgrp, chmod oder über graphische Dialoge zu ändern.
Es gibt auch grafische Tools ("Frontends"), die Browsen (mit Namensauflösung) und Einbinden ins Dateisystem miteinander verbinden. Das Tool LinNeighborhood verwendet dabei ausschließlich smbfs; bei PyNeighborhood und beim KDE-Programm Smb4K kann man zwischen smbfs und cifs-vfs wählen.
Einzelheiten zur Installation und Anwendung finden sich auf den Wiki-Seiten dieser Programme.
Voraussetzung hierfür ist ein Eintrag für die betreffende Freigabe in /etc/fstab (siehe oben). Fügt man dort dann vor credentials
noch noauto
ein, so wird die Freigabe beim Systemstart nicht gleich eingebunden, sondern nur fürs Einbinden vorbereitet:
# Beispiel //compaq/share /media/austausch smbfs users,noauto,credentials=/home/otto/.smbcredentials,uid=1000,gid=1000 0 0
Durch die Option users
wird erreicht, dass zum eigentlichen Mounten keine Root-Rechte mehr nötig sind (d.h. kein "sudo"). Zum Mounten bzw. Aushängen genügt dann die einfache Befehlszeile
# Allgemein mount <mountpunkt> umount <mountpunkt> # Beispiel mount /media/austausch umount /media/austausch
Dies funktioniert aber nur dann, wenn für die Dateien smbmnt und smbumount das SUID-Bit gesetzt ist. Ab Gutsy Gibbon 7.10 ist dies standardmäßig der Fall. In früheren Versionen muss dies mit folgenden Befehlen (im Terminal) nachgeholt werden:
sudo chmod +s /usr/bin/smbmnt sudo chmod +s /usr/bin/smbumount
Der Einsatz des SUID-Bit ist eine mögliche Sicherheitslücke und sollte nur mit Bedacht verwendet werden. In besonders gefährdeten Umgebungen sollte man deshalb lieber auf das Mounten ohne Root-Rechte ganz verzichten und für smbmnt und smbumount das SUID-Bit mit sudo chmod -s ...
löschen.
Enthalten die Dateinamen in den Freigaben Umlaute und Zeichen wie ß, é usw., dann werden diese eventuell nicht richtig dargestellt. Seit Feisty Fawn 7.04 kann man auch mit smbfs durch die Optionen iocharset=utf8 und codepage=cp850 erreichen, dass die Umlaute richtig angezeigt und beim Schreiben von neuen Dateien auch richtige Umlaute erzeugt werden.
# Allgemein //<server>/<freigabe> <mountpunkt> smbfs user,noauto,credentials=</pfad/zu/.smbcredentials>,iocharset=utf8,codepage=cp850,uid=<uid>,gid=<gid> 0 0 # Beispiel //compaq/share /media/austausch smbfs user,noauto,credentials=/home/otto/.smbcredentials,iocharset=utf8,codepage=cp850,uid=1000,gid=1000 0 0
Bis einschließlich Edgy Eft 6.10 sind bei smbfs keine Angaben zu iocharset
und codepage
möglich. Man muss entweder cifs-vfs verwenden oder entsprechende Angaben auf dem Server in /etc/samba/smb.conf vornehmen.
Mit smbfs dürfen grundsätzlich in Namen nur solche Sonderzeichen verwendet werden, die auch in Windows erlaubt sind. Dies gilt auch für Freigaben auf Samba-Servern.
Einträge in /etc/fstab sollten beim Systemstart automatisch eingebunden werden, wenn nicht noauto
eingetragen ist. Bei Freigaben mit smbfs funktioniert dies manchmal nicht. Der Grund ist, dass die Netzwerk-Verbindungen noch nicht vollständig aktiviert sind, wenn die fstab abgearbeitet wird.
In diesem Fall müssen die Freigaben mit
sudo mount -a
von einem Terminal aus nachträglich eingebunden werden. Man kann dies auch automatisieren, indem man in die Datei /etc/rc.local folgende Zeilen einfügt:
sleep 20 mount -a exit 0 # die Zeile exit 0 ist schon vorhanden
Samba Client GNOME - Vereinfachter Zugriff auf Freigaben mit GNOME/Nautilus
Samba Client KDE - Vereinfachter Zugriff auf Freigaben mit KDE
Samba Client/cifs - Der Nachfolger von smbfs
Diese Revision wurde am 19. März 2011 17:08 von Shakesbier erstellt.