ubuntuusers.de

🛈 Aktuell gibt es im Wiki ca. 750 Artikel, die nur für Xenial getestet sind. Dies entspricht ca. 10% aller Wikiartikel. Damit diese im nächsten Frühjahr nicht alle archiviert werden müssen, ist eure Mithilfe gefragt!

Samba Client SMBNetFS

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

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.

Installation

Um SMBNetFS verwenden zu können, muss folgendes Paket installiert[1] werden:

  • smbnetfs (universe)

Paketliste zum Kopieren:

sudo apt-get install smbnetfs 

Oder mit apturl installieren, Link: apt://smbnetfs

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 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.

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 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.

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 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.

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)

Optionen

Offen einzutragende Optionen

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 

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

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.

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 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.

Intern

Extern

Diese Revision wurde am 21. April 2019 23:00 von Beforge erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Client, Freigaben, Netzwerk, Windows, Samba