Gastartikel: Zickende Samba-Shares unter Mac OS X

A Mac is designed to give you the best computer experience possible. [...] everything just works. Like a computer should.” (Apple Inc.)

Manchmal ist das dann doch nicht der Fall…

Auch wenn wir Mac-Benutzer uns gerne damit schmücken, das “fortschrittlichste Betriebssystem” zu benutzen, tun sich dennoch hier und da Macken auf. Besonders in der Interaktion mit Windows-PCs ist man sich dann aber natürlich sicher, dass es der PC sein muss, der etwas falsch macht.

In unserem Fall macht eigentlich niemand etwas falsch und trotzdem gibt es ein Problem…

Aber zuerst die Situation, in die wir uns nun hineinversetzen müssen:

Wir besitzen ein MacBook Pro, an welchem wir unsere täglichen Aufgaben erledigen. Dieses ist selbstverständlich in unserem LAN, welches noch aus zwei weiteren Computern besteht.

Zum Einen haben wir einen PC, der relativ selten eingeschaltet ist und nur von einer anderen Person zu Hause genutzt wird. Windows Vista kommt hier zum Einsatz.
Und dann noch einen PC, auf dem Windows 7 läuft, der aber fast nur noch als Datenspeicher dient.
Netzwerkfreigaben sind an dieser Stelle optimal, um die Daten des PCs mit Windows 7 im gesamten Netzwerk zugänglich zu machen.

Von dem Vista-PC verbinden wir uns einfach über die Netzwerkumgebung auf die Freigabe.

Vom Mac aus ist das Prozedere eigentlich ziemlich simpel. Der Finder findet verfügbare Netzwerkfreigaben und zeigt diese an. Man klickt auf den Rechnernamen im Finder (jener ist mit einem schicken Blue-Screen-PC verziert) und kann sofort auf die passende Freigabe zugreifen. Hört sich einfach an, funktioniert aber häufig überhaupt nicht so intuitiv.

Sehen wir uns das Ergebnis bei Person X einmal an:

MacBook Pro eingeschaltet, Win7 PC eingeschaltet -> keine Freigaben im Finder
MBP, Win7 und Vista-PC eingeschaltet -> Win7 Freigaben im Mac-Finder zu finden

Fragt man sich, wie kann das sein? Warum muss der Vista-PC eingeschaltet sein, damit das MBP und der Win7-PC miteinander kommunizieren können?

Das Rätsels Lösung liegt im SMB-Protokoll. Wir benötigen in unserem LAN einen sog. “Master” für unsere Freigaben. Dieser sammelt quasi eine Liste aller Freigaben ein und veröffentlicht diese an alle Netzwerk-Clients.

Nun muss ich zugeben, dass ich das SMB-Protokoll nicht genau studiert habe. Ich weiß also nicht, warum es so ist, aber folgendes ist zu beobachten:
Ein SMB-Master wird gewählt (in unserem Beispiel der Vista-PC, vermutlich, weil er sich zuerst im LAN befand) und ist dieser nicht im LAN präsent, so scheinen die anderen Clients keinen neuen Master zu wählen.
In der Folge gibt es also niemanden, der die Freigabelisten veröffentlicht.

Des Lösungs Problem ist nun, einen neuen Master zu “wählen”.
Nehmen wir den Mac, denn der wird praktisch ständig genutzt. (Außerdem weiß ich nicht, wie es unter Windows funktioniert :D)

Anmerkung: Die folgende Anleitung hat mit meinem Ubuntu Server 9.10 ebenfalls wunderbar funktioniert. Dort gibt es jedoch nur eine statt zwei Config-Files.

Wie wird der Mac nun zum Master?

Dazu müssen die Konfigurationsdateien des Samba-Dienstes unter OSX angepasst werden.
Zuerst schnappen wir uns einmal ein Terminal-Fenster, dann öffnen wir die Datei /var/db/smb.conf
Am einfachsten ist das wohl mit nano.

Terminal

Terminal

Dort müssen wir folgendes im [global] Block eintragen: (vorhandene Werte mit # auskommentieren oder abändern)

domain master = no
local master = Yes
preferred master = Yes

/var/db/smb.conf

/var/db/smb.conf

In der /etc/smb.conf dann den eigenen Wert in folgendes abändern:

os level = 200

/etc/smb.conf

/etc/smb.conf

Nun, das OS Level auf 200 zu setzen, stellt sicher, dass wir hinterher auch Master werden.
Alle Windowsversionen benutzen einen Wert <100.

Die anderen Parameter besagen, dass wir zwar kein Domainmaster sein möchten (habt ihr eine Domäne, sollte es jedoch auch einen Domainmaster geben!), aber bevorzugter lokaler Master. Die 200 gibt uns im Prinzip nur das Recht, auch das zu bekommen, was wir möchten.

Die “Masterwahl” bei SMB ist also eigentlich nur ein digitaler Schwanzvergleich…
Und so, wie wir unseren Mac nun ausgestattet haben, hat er den Längsten!

Ein Neustart des Samba-Service oder ein Reboot ist alles, was nun noch zu tun ist.
Nach dem Reboot wird das MBP Master sein und es sollten alle PCs im Finder auftauchen.

Anmerkung: Ich kann nicht dafür garantieren, dass es funktioniert, aber bei “Person X” und auch bei mir hat diese Lösung Früchte getragen. Und da mir die Logik dahinter auch einleuchtet, empfand ich den Willen, auch anderen helfen zu wollen, die möglicherweise das gleiche oder ein ähnliches Problem haben :)

Zum Autor: Mein Name ist Tim Steinbach, ich bin 22. Derzeit bin ich selbst mit einem MacBook Pro unterwegs, darf seit einigen Tagen aber einen kleinen PC mit Ubuntu Server mein Eigen nennen. Ich arbeite aktuell als Programmierer bei einem großen deutschem Unternehmen und bin da hauptsächlich im SAP-Umfeld tätig.

Früher noch leidenschaftlicher Linuxer, habe ich mittlerweile keinen Nerv mehr, alles per Konsole einzustellen. Aber einige Jahre Linux bedeuten auch einige Jahre Konsole, sodass ich immernoch recht fit bin, wenn es darum geht, “mal eben schnell” etwas in der Konsole zu machen.

Wer möchte, darf gerne meinem Twitter-Account @Tim_Steinbach folgen, auf meiner Webseite http://nequissimus.com/ gibt es ab und an auch neue Dinge zu sehen und lesen.

Ich bitte gleichermaßen um Feedback zu diesem Artikel via Twitter wie auch hier in den Kommentaren. Feedback jeglicher Art kann nur weiterhelfen!

Quellen:

Red Hat Enterprise Linux Manual

Hinterlasse einen Kommentar





Möchtest du ein Foto in den Kommentar nutzen, melde dich bitte bei Gravatar an.