Linux Netzwerk · 4 min read · Dec 11, 2025

Durchsuchen des Windows-Netzwerks mit Ihrem Linux-Rechner mit automatischer Montage und Entdeckung aller Hosts und Freigaben.

Die aktuellste Version finden Sie unter:

http://linux.bononline.nl/linux/automountsmbshares/index.php

Index

    1. Einführung und Zusammenfassung

Einführung

Seit einiger Zeit suche ich nach einer guten Möglichkeit, meinen Computer das Windows-Netzwerk entdecken und Freigaben nach Bedarf einbinden zu lassen. Momentan gibt es dafür keine ausreichende Lösung. Nachdem ich die Kiosklaven in der Desktop-Umgebung meiner Wahl (KDE) und die FUSE-Programme Fusesmb und SmbNetFs ausprobiert habe, war ich nicht wirklich zufrieden. Es musste eine Möglichkeit geben, meinen Computer alle Arbeitsgruppen/Domänen, die Hosts und die Freigaben entdecken zu lassen und eine Freigabe auf einem Host nach Bedarf einzubinden. Einige werden sagen: Binde die Freigaben deiner Wahl von Hand ein, und los geht’s. Aber nein!! Das ist nicht, was ich will. Ich kann meinen Computer automatisch alle verfügbaren Hosts und Freigaben entdecken lassen und die Freigabe nur bei Bedarf einbinden. Das sollte möglich sein! Und nach einigen Versuchen habe ich herausgefunden, dass es das ist!

Die folgenden Punkte sind meiner Meinung nach notwendig:

  • automatische Entdeckung des SMB-Netzwerks (Domänen, Hosts und Freigaben)

  • Erstellung einer Darstellung, die für die Benutzer in ihrem Home-Verzeichnis sinnvoll ist

  • automatische Montage von Freigaben nach Bedarf

  • automatische Demontage von Freigaben nach einer gewissen Zeit der Nichtbenutzung

  • Verwendung eines Kernel-Dateisystems wie SMBFS oder CIFS

  • unabhängig von einem Desktop-Manager

  • Unterstützung anderer Netzwerkdienste wie SSH und FTP

Das FUSE-Programm Fusesmb kommt dem, was ich suche, sehr nahe, hat jedoch nicht die erweiterten Funktionen, die CIFS bietet, wie die richtige Darstellung der Berechtigungen, Unterstützung von inotify, Symlink und ATTR/ACL. Es hat eine Weile gedauert, bis ich herausgefunden habe, warum das FUSE-Programm diese Funktionen nicht hat. FuseSMB basiert auf der smbclient-Bibliothek smbclient.so, die Teil des Samba-Pakets ist, und hat nichts mit smbfs oder cifs zu tun.

Das Ergebnis

Das Ergebnis dieser Konstruktion ist ein netzwerkbezogenes Verzeichnis (Global Network) in Ihrem Home-Verzeichnis, wo der Automounter einen durchsuchbaren Baum bereitstellt, um auf alle unterstützten Netzwerkdienste zuzugreifen.

Im Moment unterstützt es die Dienste SMB und SSH (ich arbeite an FTP). Zugriff auf den “Netzwerk-Mountpoint”:

/home/sbon/Global Network/
SSH-Hosts
Windows-Netzwerk

Zugriff auf das Windows-Netzwerk (==smb), alle Arbeitsgruppen und/oder Domänen erscheinen:

/home/sbon/Global Network/
SSH-Hosts
Windows-Netzwerk
BONONLINE
CWWERKGROEP

Betritt man die Arbeitsgruppe CWWERKGROEP, erscheinen alle Server und anderen Hosts:

/home/sbon/Global Network/
SSH-Hosts
Windows-Netzwerk
BONONLINE
CWWERKGROEP
ROUTER
PC1

Betritt man den Server ROUTER, erscheinen die Freigaben, die dem verbindenden Benutzer zur Verfügung stehen:

/home/sbon/Global Network/
SSH-Hosts
Windows-Netzwerk
BONONLINE
CWWERKGROEP
ROUTER
cwdocumenten
public
sbon

Beim Zugriff auf eine Freigabe wird sie automatisch eingebunden (mit CIFS oder SMBFS). Die Verwendung von Anmeldeinformationen wird unterstützt, Gastanmeldungen sind die Standardeinstellung.

Um die “Multi-Mount-Map” für den smb-Dienst zu erstellen, wird ein Netzwerk-Cache verwendet. Er bietet Informationen über Arbeitsgruppen und/oder Domänen, Hosts und verfügbare Server und Freigaben. Er wird von einigen Skripten gepflegt, die einige Dienstprogramme verwenden (nbtscan zur Bestimmung der Hosts und Arbeitsgruppen/Domänen und smbclient zur Bestimmung der Freigaben pro Host).

Beim Zugriff auf die SSH-Hosts (=ssh) erscheinen alle Hosts, auf die dieser Benutzer Zugriff hat:

/home/sbon/Global Network/
SSH-Hosts
192.168.0.2
Windows-Netzwerk

Hier wird kein Cache verwendet, um diesen Baum zu erstellen, sondern die Datei .known_hosts. Außerdem war kein mount.sshfs verfügbar. Ich habe einen erstellt, der FUSE und sshfs verwendet. (und umount.sshfs).
Jetzt, wenn man auf den Host 192.168.0.2 zugreift, wird das Root-Verzeichnis auf 192.168.0.2 eingebunden.

Wie es funktioniert

Diese Konstruktion nutzt den Automounter. Wenn sich ein Benutzer anmeldet und eine neue Sitzung beginnt, wird ein “Netzwerk-Mountpoint” zur auto.master-Datei hinzugefügt und der Automounter-Daemon erhält ein “Reload”-Signal. Dieser Mountpoint, standardmäßig “Global Network” genannt, befindet sich im Home-Verzeichnis des Benutzers. Daran gekoppelt ist ein Skript (auto.network), das eine Karte erstellt, basierend auf allen unterstützten Netzwerkdiensten und entdeckten Ressourcen. Zusammen mit der Durchsuchungsoption bietet dies eine durchsuchbare Karte, wo Freigaben/Hosts beim Zugriff eingebunden werden.

Wenn der Benutzer sich abmeldet und somit die Sitzung endet, wird der Mountpoint wieder entfernt, und der Automounter-Daemon erhält erneut ein Reload-Signal, um die Änderungen wirksam zu machen.

Hier wird die Fähigkeit von KDM genutzt, Skripte mit Root-Rechten zu Beginn und am Ende einer Sitzung auszuführen.

Im Moment werden nur SMB und SSH unterstützt.

Bekannte Probleme

Es gibt einige Engpässe:

  • Wenn eine Freigabe hinzugefügt wird, ein Host offline geht oder sich sonst etwas in der smb-Umgebung ändert, dauert es eine Weile, bis es auch im Cache sichtbar ist. Dieser Cache wird durch einige Skripte gepflegt, die mit einem “Pull”-basierten Mechanismus arbeiten. Zweitens erkennt der Automounter nicht selbst, dass sich die Daten im Cache geändert haben. Er erneuert nur seine eigenen Daten (die Multi-Mount-Map) nach einer Zeitüberschreitung, und selbst dann erfasst er nicht alle Änderungen vollständig.
  • Der Automounter wird angewiesen, eine durchsuchbare Mount-Karte bereitzustellen. Das bedeutet, dass die obersten Verzeichnisse immer verfügbar sind. Das ist eine sehr gute Sache, die verfügbaren Netzwerke sind immer sichtbar und für den Benutzer zugänglich, selbst nach einer Zeitüberschreitung. In der Praxis verschwindet manchmal einer der “Netzwerkdienste”…
  • Der Automounter hat einige Probleme beim Starten mit einer leeren auto.master-Datei (und leeren Includes). Beim Booten, wenn kein Benutzer angemeldet ist und somit keine von autofs verwalteten Netzwerk-Mountpoints vorhanden sind, muss der Automounter mit einer leeren Karte gestartet werden.

Links

Zugriff auf Windows- oder Samba-Freigaben mit autofs

Ein Leitfaden zur Einrichtung von autofs für SMB-Freigaben unter Verwendung vorhandener Dateien;

Integration Ihres Linux-Hosts in eine Windows-Umgebung

Ein Leitfaden zur Einrichtung von autofs, um Freigaben auf alternative Weise zuzugreifen.

HOWTO Automount-Dateisysteme (AUTOFS) / udev mit autofs

Hier wird fast die gleiche Konstruktion verwendet, um Hardware mit autofs und udev einzubinden. Auch hier werden Mountpoints dynamisch zur auto.master-Datei hinzugefügt und entfernt.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.