Ubuntu 16.04 Xenial Xerus
Ubuntu 12.04 Precise Pangolin
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. SMBNetFS hat Ähnlichkeiten mit FuseSMB. Es ist aber einfacher aufgebaut und bietet weniger Möglichkeiten der Differenzierung und Personalisierung.
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 gvfs-mount ist deshalb zu empfehlen.
Um SMBNetFS verwenden zu können, muss folgendes Paket installiert[1] werden:
smbnetfs
mit apturl
Paketliste zum Kopieren:
sudo apt-get install smbnetfs
sudo aptitude install smbnetfs
Außerdem muss das Kernelmodul fuse geladen sein (siehe FUSE). Dies ist bei Ubuntu bereits der Fall.
Weil SMBNetFS das Kernelmodul fuse verwendet, müssen alle User, denen der Zugriff auf Freigaben mittels FuseSMB 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.
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.
Gibt man über Alt F2 oder in einem Terminal folgenden Befehl ein,
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 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 gvfs-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) eingetragen sein. Sonst wird der Zugriff verweigert.
Besonders einfach gestaltet sich das Einbinden, wenn man dafür im GNOME 2- oder Xfce-Panel einen Starter anlegt.
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 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
fusermount -u MOUNTPOINT
Dieser kann über Alt F2 oder in einem Terminal eingegeben werden.
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)
Die Gesamtheit der wählbaren Optionen erhält man in einem Terminal mit dem 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 (siehe unten).
Mehrere Optionen können durch Komma getrennt aneinander gefügt werden.
Beispiel:
smbnetfs ~/Netzwerk -o uid=1000,gid=1000,allow_other,umask=0022
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.
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.
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
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.
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.
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 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.
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.
Samba Überblick über das Themengebiet mit weiteren Links
Samba Client GNOME - mit GNOME/Nautilus auf Freigaben zugreifen
Samba Client KDE - mit KDE auf Freigaben zugreifen
gvfs-mount - der inzwischen standardmäßig verwendete Zugriff bei allen Ubuntu-Varianten
Diese Revision wurde am 12. November 2016 03:21 von Knarf68 erstellt.