Jahrelang habe ich mit meinem Linux Rechner mit Xubuntu 20 auf einige wenige freigegebene Ordner eines PC mit Windows 10 zugegriffen. Bequem konnte ich im Filemanager Thunar auf „Netzwerk durchsuchen“ gehen, habe dann „Workgroup“ gefunden und darin die Freigaben von Windows. Nach dem Doppelklick stand in der Adresszeile
smb://192.168.178.1/<freigabename>
Vor kurzem ging das plötzlich nicht mehr. Ich wusste, dass es gerade ein recht großes Update gegeben hatte. Da ich es gewohnt war, dass sich früher bei Windows manchmal nach Updates die Einstellungen der Firewall geändert hatten und die Zugriffe von außen plötzlich gesperrt waren, kontrollierte ich erstmal das – ohne Erfolg. Windows ist nun nicht „mein“ Fachgebiet, also konsultierte ich einen Freund und der wusste sofort, was Sache war.
Die letzten großen Updates von Windows 10 hießen 20H2 und 21H1. Eins von beiden, vermutlich das letztere, habe den Zugriff auf Freigaben über das SMB-Protokoll aus Sicherheitsgründen aus Windows entfernt.
Meine Suchen ergaben, dass es zwar möglich sei, diesen Teil des Protokolls wieder zu installieren, aber das sei recht umständlich und bringe die gerade entfernte Unsicherheit natürlich wieder mit. Das war nun nicht gerade mein Ziel. Weitere Recherchen im Usenet brachten den Tip, stattdessen die entfernten Verzeichnisse als CIFS-Laufwerk zu mounten. Das basiert zwar auch auf SMB(2), realisiert den Zugriff aber transparent als virtuelles Filesystem.
Ich habe das hier beschriebene realisiert und zeige hier lediglich die Kurzfassung als Überblick. Das in Ubuntu nötige Paket cifs.utils ist vermutlich standardmäßig vorhanden, könnte aber leicht nachinstalliert werden:
sudo apt-get install cifs-utils
Zunächst erstellt man ein für den User zugängliches Verzeichnis als Mountpoint, vielleicht so:
mkdir ~/Windows
Voraussetzung für das Weitere ist, dass es in Windows einen bekannten User gibt. Entweder greift man als der sowieso angemeldete einzige User zu oder man hat sich dort einen eigenen User eingerichtet, was ich als eleganter empfinde. Ich benutze die Verbindung selten und nur zum abgesprochenen Austausch diverser Files; zudem läuft Windows nicht immer und ein automatisches Mounten beim Hochfahren von Linux ist nicht sinnvoll. Deswegen habe ich mir lediglich zwei Starter auf dem Desktop erstellt, einen zum Mounten, den anderen zu Aushängen (den man eigentlich nicht zwingend braucht – weg ist weg!). Zunächst habe ich ein paar Zeile einschließlich Kommentar in die /etc/fstab geschrieben, die das „Laufwerk“ zwar nicht mounted, aber alle Parameter enthält und nicht unbefugt benutzt werden kann:
# auf WIN-PC freigegebenes Verzeichnis linux einbinden:
# =========================================================
//192.168.178.2/linux /home/rollo/Windows cifs username=...,password=...,user,noauto,rw,_netdev 0 0
# user sorgt dafür, dass ohne sudo gemounted werden kann und ~/Windows mir gehört
# mount: mount /home/rollo/Windows
# umount: umount ~/Windows
# _netdev ignoriert die Zeile, wenn kein Netzwerk da ist
Danach habe ich zwei Starter auf dem Desktop erzeugt, die die oben genannten Kommandozeilen enthalten und wegen dem Parameter „user“ ohne sudo aufrufbar sind. Daneben noch eine Verlinkung auf den Mountpoint ~/Windows und fertig. Hier die beiden Starter – wie man sieht ohne sudo:
mount /home/rollo/Windows
umount /home/rollo/Windows
Natürlich ließe sich das Ganze noch ausbauen durch einen Mechanismus zum automatischen Verbinden, sobald Windows beim Booten schon da ist oder später dazukommt. Da es aber keinen einfachen und sicheren Mechanismus zum automatischen Aushängen gibt, lasse ich das.