Wir nutzen im Büro eine Linkstation Pro Duo um bequem Daten austauschen zu können. Vor einigen Tagen ergab sich das Problem, dass in Verzeichnisse, die ein bestimmter Nutzer erzeugt hatte, nicht von einem anderen Nutzer geschrieben werden konnten. Das sollte aber sehr wohl gehen, da die Linkstatiion in ihrer Samba-Konifguration stets automatisch ein
force create mode = 666
force directory mode = 777
einträgt. Zugriffbeschränkungen werden über unterschiedliche Shares geregelt. Nutzer, die gemeinsam Zugriff auf einen Share haben, sollten also auch in der Lage sein, in vorhandene Verzeichnisse zu schreiben oder Dateien zu löschen.
Ein unter MAC OS X Leopard angelegtes Verzeichnis hatte jedoch auf dem Linkstation-Samba-Share die Rechte 755, anstatt 777. Ein unter Windows Vista angelegtes dagegen die durch die Konfiguration vorgebenen 777.
Wie sich nach längerer
Recherche herausgestellt hat, liegt das daran, dass MAC OS X seit Leopard die umask Einstellung des Nutzers auf über Samba erzeugte Dateien und Verzeichnisse anwendet.
Um das zu Problem zu lösen, könnte man also die umask Einstellung der Mac-Nutzer ändern, das würde aber die Macs ein weniger unsicherer machen, da ja in unserem Fall umask 000 benötigt würde. Alternativ lässt sich das Problem auch über die Samba-Konfiguration lösen, indem darin
unix extensions = off
gesetzt wird. Das hat wiederum den Nachteil, dass dann auch keine Hard- oder Symlinks benutzt werden können, aber das spielt in unserem Fall keine Rolle.
Um die Samba-Konfiguration auf einer Linkstation zu ändern, braucht man jedoch Zugriff auf deren Betriebsystem als Root. Dazu ist es nötig, sich
einen Telnet Zugang einzurichten.
Hat man erst Zugang auf die Linkstation, kann man in
/etc/samba/smb.conf
die Samba Konfiguration anpassen, indem man in der [Global] Sektion
unix extensions = off
einfügt.
Allerdings schreibt die Linkstation bei jedem Neuladen der Konfiguration diese zuvor neu, die selbstgemachten Änderungen werden also sofort wieder gelöscht, wenn man den Samba-Server neu startet. Um das zu verhindern, habe ich die Datei
/etc/init.d/smb.sh
nach
/etc/init.d/smb_noconfigure.sh
kopiert und in der neuen Datei in der Funktion
reload()
den Aufruf von configure auskommentiert:
# configure
Anschließend lässt sich die angepasste Konfiguration mit
/etc/init.d/smb_noconfigure.sh reload
neu laden und die Unix Extensions sind ab sofort inaktiv.
Da ich die Linkstation nicht grundsätzlich über smb.conf konfigurieren möchte, nehme ich einfach in Kauf, dass man nun nach jeder Anpassung von Nutzern, Shares oder auch nach Neustarts den Samba-Server mit dem angepassten Script neu starten muss.
21.08.2009 13:56 von Holger Knauer