[[Vorlage(Archiviert)]] {{{#!vorlage Wissen [:Pakete_installieren:Pakete installieren] [:Editor:Einen Texteditor verwenden] [:sudo:Arbeiten als Root] [:Terminal:Ein Terminal verwenden] }}} [[Inhaltsverzeichnis(2)]] = Grundlegendes = Mit dem virtuellen Dateisystem [http://samba.org/samba/smbfs/ smbfs] {en} können Freigaben wie ein Datenträger in das Dateisystem des Client eingebunden werden. Allerdings wird ''smbfs'' nicht mehr weiter entwickelt. Sein Nachfolger [http://linux-cifs.samba.org cifs-vfs] {en} 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. = Installation = Um '''smbfs''' verwenden zu können, muss nachfolgendes Paket installiert[1] werden: * '''smbfs''' = Mountpunkt erstellen = Um eine Freigabe einzubinden, muss zunächst ein [:mount: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:]. {{{#!vorlage Befehl # Allgemein sudo mkdir # Beispiel sudo mkdir /media/austausch }}} {{{#!vorlage Hinweis Zum Einbinden wird intern das Hilfsprogramm '''smbmount''' verwendet. Für '''smbmount''' gelten __nicht__ durchweg die gleichen Parameter und [:mount:Mount-Optionen] wie bei ''cifs'', ''NFS'' oder bei echten Dateisystemen. }}} Weitere Einzelheiten und zusätzliche Optionen findet man in der [:man:Manpage] mittels {{{#!vorlage Befehl man smbmount }}} = Temporäres Einbinden = Möchte man eine Freigabe nur testen bzw. nur temporär einbinden, so erfolgt dies mit dem Befehl [2]: {{{#!vorlage Befehl # Allgemein sudo mount -t smbfs -o username=,password= /// # 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: {{{#!vorlage Befehl # Allgemein sudo mount -t smbfs -o username=/,password= /// # Beispiel sudo mount -t smbfs -o username=otto/office,password=geheim //compaq/share /media/austausch }}} {{{#!vorlage Warnung 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. }}} = Festes Einbinden = Zunächst wird wie oben beschrieben ein Mountpunkt erstellt. Um nun eine Freigabe fest in das System einzubinden, ist diese in die Datei '''[:fstab:/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:Mount-Optionen] darauf verweisen. Zunächst erstellt man eine Textdatei mit dem Namen '''.smbcredentials''' im eigenen Homeverzeichnis und trägt folgenden Inhalt ein. {{{username= password= }}} Damit die Datei nur vom Besitzer eingesehen werden kann, setzt man die Rechte[7] entsprechend {{{#!vorlage Befehl sudo chmod 600 ~/.smbcredentials }}} Hierfür öffnet man die Datei '''/etc/fstab''' in einem Texteditor [3] und trägt die Freigabe ein {{{# Allgemein /// smbfs credentials= 0 0 # Beispiel //compaq/share /media/austausch smbfs credentials=/home/otto/.smbcredentials 0 0 }}} Auf diese Weise wird eine Freigabe beim Systemstart automatisch eingebunden. = Besitz- und Zugriffsrechte = 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:Benutzer und Gruppen]). Dies geht sowohl beim temporären Einbinden: {{{#!vorlage Befehl # Allgemein sudo mount -t smbfs -o username=,password=,uid=,gid= /// # 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 /// smbfs credentials=,uid=,gid=,fmask=,dmask= 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:]. {{{#!vorlage Hinweis 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. = Grafische Tools = 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 [:Archiv/Samba_Client PyNeighborhood:PyNeighborhood] und beim [:KDE:]-Programm [:Samba_Client/Smb4K:Smb4K] kann man zwischen ''smbfs'' und ''cifs-vfs'' wählen. Einzelheiten zur Installation und Anwendung finden sich auf den Wiki-Seiten dieser Programme. = Weitere Einzelheiten = == Manuelles Einbinden als normaler Benutzer == Voraussetzung hierfür ist ein Eintrag für die betreffende Freigabe in [:fstab: /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 {{{#!vorlage Befehl # Allgemein mount umount # Beispiel mount /media/austausch umount /media/austausch }}} Dies funktioniert aber nur dann, wenn für die Dateien '''smbmnt''' und '''smbumount''' das [:chmod: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: {{{#!vorlage Befehl sudo chmod +s /usr/bin/smbmnt sudo chmod +s /usr/bin/smbumount }}} {{{#!vorlage Warnung 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. }}} == Umlaute und Sonderzeichen == 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 /// smbfs user,noauto,credentials=,iocharset=utf8,codepage=cp850,uid=,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. [[Anker(Probleme)]] = Probleme und Lösungen = == Starten und beenden == === Einträge in /etc/fstab werden beim Systemstart nicht eingebunden === Einträge in [:fstab: /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 {{{#!vorlage Befehl sudo mount -a }}} von einem Terminal aus nachträglich eingebunden werden. Man kann dies auch automatisieren, indem man in die Datei [:rc.local: /etc/rc.local] folgende Zeilen einfügt: {{{sleep 20 mount -a exit 0 # die Zeile exit 0 ist schon vorhanden }}} == Kompatibilität == === smbfs und Hal === Unter [:Dapper:] Drake 6.06 und [:Edgy:] Eft 6.10 kommt es bei einigen Benutzern zu Problemen bei der Benutzung von ''smbfs'' in Verbindung mit ''Hal''. Als Alternative empfiehlt sich ''cifs''. = Links = == Verwandte Seiten == * [: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'' == Extern == * [http://samba.sernet.de/ Die offizielle Samba-Webseite] {de} * [http://us1.samba.org/samba/ The official Samba webpage] {en} # tag: