[[Vorlage(archiviert, )]] {{{#!vorlage Wissen [:Pakete_installieren:Pakete installieren] [:Terminal:Terminal benutzen] [:sudo:Als Root Arbeiten] }}} [[Inhaltsverzeichnis(2)]] SMBNetFS ist ein freies Linux-Dateisystem, das es dem Nutzer erlaubt, Samba- und Windows-Netzwerke auf ähnliche Weise wie in der Windows-Netzwerkumgebung zu nutzen. Es ist nicht an eine bestimmte Desktop-Umgebung gebunden. Unter Umständen kann der Dateizugriff über SMBNetFS deutlich langsamer sein als der über das in [:GNOME:] bzw. [:Unity:] standardmäßig eingerichtete GVFS. Ein Vergleich mit [:Archiv/gvfs-mount:] ist deshalb zu empfehlen. =Installation= Um SMBNetFS verwenden zu können, muss folgendes Paket installiert[1] werden: {{{#!vorlage Paketinstallation smbnetfs, universe }}} Außerdem muss das Kernelmodul '''fuse''' geladen sein (siehe [:FUSE:]). Dies ist bei Ubuntu bereits der Fall. =Vorbereitung= ==Benutzer in die Gruppe fuse übernehmen== Weil SMBNetFS das Kernelmodul fuse verwendet, müssen bei Ubuntu-Versionen bis 18.04 Benutzer, denen der Zugriff auf Freigaben erlaubt werden soll, der Gruppe fuse angehören. Nötigenfalls muss man dafür in * ''"System -> Systemverwaltung -> Benutzer und Gruppen -> Eigenschaften -> Benutzerrechte"'' vor "Verwendung von FUSE-Dateisystemen" ein Häkchen setzen. Die Zuordnung des Benutzers zur Gruppe wird erst nach einem erneuten Anmelden aktiv. ==Einhängepunkt erstellen== Das Einbinden in ein Dateisystem bezeichnet man auch als "Mounten". Der Ort, an dem dies erfolgt, wird auch "Mountpoint" genannt. Als Mountpoint muss ein leerer Ordner eingerichtet werden. Dafür kann jede beliebige Stelle in der Dateihierarchie gewählt werden. Üblich ist das Heimverzeichnis des jeweiligen Benutzers. Auch ein Ordner auf dem [:Desktop:] kann sinnvoll sein. Im Folgenden wird dieser Ordner mit "MOUNTPOINT" bezeichnet. = Nutzung = == Temporäres Einbinden == Gibt man über [[Vorlage(Tasten, Alt)]][[Vorlage(Tasten, F2)]] oder in einem [:Terminal:] folgenden Befehl ein, {{{#!vorlage Befehl smbnetfs MOUNTPOINT }}} dann wird dort das gesamte verfügbare Samba- bzw. Windows-Netzwerk eingehängt. Bei größeren Netzwerken kan dies einige Sekunden dauern. Anschließend kann man darin wie in einem lokalen Ordner mit dem Dateimanager ([:Nautilus:], [:Konqueror:], [:Thunar:] ...) browsen. Die Syntax entspricht dabei dem [wikipedia:Portable Operating System Interface:POSIX]-Standard (kein ''"\smb://... "''), sodass alle Programme auf die eingebundenen Freigaben zugreifen können. Für die eingebundenen Freigaben werden in den Dateimanagern gewöhnliche Ordner- bzw. Dateisymbole verwendet. Im Gegensatz zu [:gio_mount:] (z.B. bei [:Samba_Client_GNOME:] bzw. Nautilus über ''"Orte -> Verbindung zu Server"'') oder [:mount.cifs:] fragt SMBNetFS nicht interaktiv nach Benutzernamen und Passwort. Werden diese zur Authentifikation beim Zugriff auf eine Freigabe benötigt, müssen sie in einer der Dateien '''smbnetfs.conf''' oder '''smbnetfs.auth''' (siehe [#Optionen Optionen]) eingetragen sein. Sonst wird der Zugriff verweigert. Besonders einfach gestaltet sich das Einbinden, wenn man dafür im [:GNOME Panel:GNOME 2-] oder [:Xfce Panel:Xfce-Panel] einen Starter anlegt. == Aushängen == Beim Herunterfahren des Systems wird ein über SMBNetFS eingebundenes Netzwerk automatisch wieder korrekt ausgehängt. In einigen Fällen kann es trotzdem sinnvoll sein, das Netzwerk schon früher von Hand auszuhängen: * Ist die [#Optionen Option] `direct_io` nicht gesetzt (Standard), werden Schreiboperationen nicht sofort auf dem Server ausgeführt, sondern evtl. auf dem Client zwischengespeichert (gepuffert). In diesem Fall sollte man vor kritischen Veränderungen an einem Server oder vor dem Ausschalten eines Servers das Netzwerk-Dateisystem aushängen. * Vor dem Verwenden von Routinen mit Suchfunktionen (z.B. Virenscanner, Mediaplayer) kann es sinnvoll sein, das Netzwerk-Dateisystem auszuhängen, um unnötige Verzögerungen und eine unnötige Belastung des Netzwerks zu vermeiden. * Das Herunterfahren des Systems wird u.U. beschleunigt, wenn man das Netzwerk-Dateisystem schon vorher aushängt. Zum Aushängen eines mit SMBNetFS eingehängten Dateisystems dient der Befehl {{{#!vorlage Befehl fusermount -u MOUNTPOINT }}} Dieser kann über [[Vorlage(Tasten, Alt)]][[Vorlage(Tasten, F2)]] oder in einem [:Terminal:] eingegeben werden. == Statisches Einbinden, Automount == Arbeitet man ständig mit Freigaben aus dem Samba- oder Windows-Netzwerk, dann möchte man dieses gerne automatisch ein- und nötigenfalls wieder aushängen können. Da der gesamte Einhängevorgang mit einer einzigen Befehlszeile bewerkstelligt wird, braucht man dafür nicht einmal ein eigenes Script anzulegen. Es genügt, die Befehlszeile mit Mountpunkt und Optionen einfach als [:Autostart:] einzutragen. Für den Mountpoint muss dabei der komplette Pfad angegeben werden (also nicht verkürzt wie z.B. '''~/ORDNER''') ## Besonders einfach und sicher gestaltet sich der Automount, wenn man zum Herstellen der Netzwerk-Verbindung statt des [:NetworkManager:] den alternativen Netzwerk-Manager [:Wicd:] verwendet. Dort trägt man die Befehlszeile zum Einbinden unter ''"Eigenschaften -> Scripte -> Post-connection Script"'' ein. Ergänzend kann man noch eine Zeile zum Aushängen als ''"Pre-disconnection Script"'' eintragen. Mit dem NetworkManager lässt sich ähnliches nur mit einem Script im [:NetworkManager/Dispatcher:Dispatcher] erreichen. == Optionen == === Offen einzutragende Optionen === Die Gesamtheit der wählbaren Optionen erhält man in einem [:Terminal:] mit dem Befehl {{{#!vorlage Befehl smbnetfs --help }}} Deshalb genügt es, hier auf die wichtigsten und am häufigsten verwendeten Optionen einzugehen: * `-o uid=N` legt den Eigentümer des eingebundenen Netzwerks auf dem Client fest. Standard ist 0, d.h. "Root". * `-o gid=N` legt die Gruppe auf dem Client fest. Standard ist 0, d.h. Gruppe "Root". ''uid'' und ''gid'' müssen als Zahlenwerte angegeben werden. * `-o umask=M` Die Maske M legt weitere Einschränkungen der Dateirechte auf dem Client fest. Sie muss als Oktalzahl (0000 bis 0777) eingegeben werden und ist __negativ__ zu verstehen, d.h. sie bezeichnet die auszuschließenden Rechte. Standard ist 0000, d.h. die auf dem Server geltenden Zugriffsrechte werden nicht weiter eingeschränkt. * `-o direct_io` Zugriff auf den Server erfolgt sofort ohne Zwischenspeicherung (Pufferung). * `-o allow_other` Die eingebundenen Freigaben auch für andere sichtbar und benutzbar machen ([#Zugriff-auch-fuer-andere-Benutzer-erlauben siehe unten]). Mehrere Optionen können durch Komma getrennt aneinander gefügt werden. Beispiel: {{{#!vorlage Befehl smbnetfs ~/Netzwerk -o uid=1000,gid=1000,allow_other,umask=0022 }}} {{{#!vorlage Hinweis Die über die Optionen festgelegten Besitz- und Zugriffsrechte werden nur auf dem Client simuliert, sie werden nicht auf den Server übertragen und gelten deshalb nur für den jeweiligen Client und Zugriff. }}} ===Zugriff auch für andere Benutzer erlauben=== Standardmäßig sind die Freigaben nur für denjenigen Benutzer sichtbar und verfügbar, der sie eingebunden hat. Das Recht, sie mit dem Zusatz `allow_other` auch für andere Benutzer der Gruppe "fuse" zugänglich zu machen, steht nur Root zu. Durch folgende Zeile in der Konfigurationsdatei '''/etc/fuse.conf''' (nur mit Root-Rechten einsehbar) {{{ user_allow_other }}} wird dieses Recht auch auf andere Benutzer ausgedehnt. Ohne diesen Eintrag ist beim Befehl `smbnetfs` die Option `allow_other` unwirksam. === Konfigurationsdateien === Die Konfiguration von SMBNetFS erfolgt primär über die (versteckte) Datei '''~/.smb/smbnetfs.conf'''. Diese muss nötigenfalls von Hand angelegt werden. Eine Beispieldatei dafür wird bei der Installation von SMBNetFS in '''/etc/smbnetfs.conf''' abgelegt. Außerdem kann SMBNetFS auch für den Client relevante Eintragungen aus der Datei '''smb.conf''' berücksichtigen. Dazu braucht man diese nicht einzeln nach '''smbnetfs''' zu übertragen; es genügt, einfach die komplette Datei '''/etc/samba/smb.conf''' unverändert nach '''~/.smb''' zu kopieren. Fehlen im Ordner '''.smb''' die beiden Dateien '''smbnetfs.conf''' und '''smb.conf''', so läuft SMBNetFS mit Standard-Einstellungen. Wichtige Einträge in '''smbnetfs.conf''' sind z.B.: {{{ samba_charset "utf-8" # verwendeter Zeichensatz auth "user" "password" # Authentifikation: Benutzer und Passwort }}} Die Authentifikation kann auch für einzelne Server, Domänen, Arbeitsgruppen oder Freigaben einzeln erfolgen. Die Syntax hierfür ist {{{ auth "[computer[/share]]" "[domain_or_workgroup/]user" "password" }}} Schließlich kann man die Authentifikation auch in eine eigene, zusätzlich anzulegende Datei '''~/.smb/smbnetfs.auth''' auslagern. Beispiele: {{{ # der Zugriff erfolgt allgemein als Benutzer "otto" mit dem Passwort "geheim" auth "otto" "geheim" # # der Zugriff auf "Desktop-PC/Bilder" erfolgt als Benutzer "lena" mit dem Passwort "secret" auth "Desktop-PC/Bilder" "lena" "secret" # # Gast-Zugriff als Benutzer "nobody" ohne Passwort. auth "nobody" "" }}} Die Datei, die Authentifikations-Daten (Passwörter) enthält, muss mit {{{#!vorlage Befehl chmod 0600 DATEI }}} im Rahmen des Möglichen vor fremdem Zugriff geschützt sein. Dies ist Voraussetzung dafür, dass SMBNetFS die Authentifikations-Daten aus der Datei übernimmt. {{{#!vorlage Hinweis In einem unverschlüsselten Heimverzeichnis sind auch versteckte und zugriffsbeschränkte Dateien nicht wirklich vor fremdem Zugriff sicher, da mittels Live-CD oder über Root-Rechte immer noch zugegriffen werden kann. }}} == Vorzüge und Einschränkungen == SMBNetFS kann auch mit Xfce (Xubuntu) und mit anderen Desktop-Umgebungen verwendet werden, die früher keine eigene Unterstützung für Netzwerk-Verbindungen boten (inzwischen verwenden auch Xubuntu und Lubuntu GVFS in ihren Standard-Dateimanagern [:Thunar:] bzw. [:PCManFM:]). Die Server werden dabei wie in GNOME und KDE über ihre Netbios-Namen angesprochen. Benutzername und Kennwörter können in einer versteckten Konfigurationsdatei abgelegt werden, sodass sie nicht bei jedem Einbinden eingegeben werden müssen. SMBNetFS erlaubt es (im Gegensatz etwa zum [:Samba_Client_GNOME:GVFS]), eine Vielzahl von Optionen - darunter auch Besitz-und Zugriffsrechte auf dem Client - gemäß den Bedürfnissen des Benutzers einzustellen. Der Einhängepunkt (mountpoint) kann beliebig gewählt werden. Die Syntax ist von vorne herein schon ''POSIX''-konform (kein ''"\smb://... "''), sodass keine besonderen Tricks nötig sind, damit wirklich alle Programme problemlos auf die Freigaben zugreifen können. === cifs-UNIX-Extensions === SMBNetFS verwendet zum Mounten nur das Paket '''samba-common''' (Bestandteil der Standard-Installation von Ubuntu) und nicht die Routine ''mount.cifs'' aus dem Paket '''smbfs'''. Deshalb werden die ''cifs-UNIX-Extensions'' von SMBNetFS nicht unterstützt. Dies bedeutet vor allem, dass die Besitz- und Zugriffsrechte und der Zeitstempel (Datum und Uhrzeit) nicht zwischen Server und Client synchronisiert werden. Es ist deshalb auch nicht nötig, die UID und GID auf dem Server und dem Client aneinander anzupassen. = Links = == Intern == * [:Samba:] {Übersicht} Überblick über das Themengebiet mit weiteren Links * [:Samba Client GNOME:] - mit [:GNOME:]/[:Nautilus:] auf Freigaben zugreifen * [:Samba Client KDE:] - mit [:KDE:] auf Freigaben zugreifen * [:gio_mount:] - der inzwischen standardmäßig verwendete Zugriff bei allen Ubuntu-Varianten == Extern == * [https://linux-cifs.samba.org/ CIFS for Linux] {en} * [https://www.sernet.de/samba/ Die offizielle deutsche Samba-Webseite] {de} * [https://www.samba.org/samba/ The official Samba webpage] {en} # tag: Netzwerk, Samba, Client, Freigaben, Windows