Archiv/Samba Client SMBNetFS

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Pakete installieren

  2. ⚓︎ Terminal benutzen

  3. ⚓︎ Als Root Arbeiten

Inhaltsverzeichnis
  1. Installation
  2. Vorbereitung
    1. Benutzer in die Gruppe fuse übernehmen
    2. Einhängepunkt erstellen
  3. Nutzung
    1. Temporäres Einbinden
    2. Aushängen
    3. Statisches Einbinden, Automount
    4. Optionen
    5. Vorzüge und Einschränkungen
  4. Links
    1. Intern
    2. Extern

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:

Befehl zum Installieren der Pakete:

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

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 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) 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:

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