10.9.5: Wirklich kompatible SMB-Gast-Freigaben möglich?

S

Steppenwolfli

Aktives Mitglied
Thread Starter
Dabei seit
24.02.2008
Beiträge
296
Reaktionspunkte
19
Hallo,

ich habe Schwierigkeiten, einen Ordner unter Mavericks 10.9.5 "richtig" im Netzwerk mit einer Gast-Freigabe zu versehen.

Wie ich vorgegangen bin:

- Systemeinstellungen -> Benutzer & Gruppen -> Gastbenutzer für Zugriff auf Freigaben aktiviert

- Systemeinstellungen -> Netzwerk -> Weitere Optionen -> WINS -> Arbeitsgruppenname eingegeben, identisch wie bei allen anderen Systemen, die über SMB zugreifen sollen.

- Systemeinstellungen -> Freigaben -> Dateifreigabe aktiviert (auch über SMB), Ordner hinzugefügt, Benutzer "Jeder" darf Lesen & Schreiben.

Ergebnis: Von Windows-Systemen oder Netzwerk-Medien-Playern (Linux-basiert), die Samba nutzen, werde ich beim Versuch des Verbindens zum Mac nach Zugangsdaten gefragt.

Was ich anschließend probiert habe:
Einen neuen Benutzer nur für Freigabenzugriff eingerichtet und diesen ebenfalls bei "Freigaben" bei den Ordnern und parallel dem Untermenü Optionen hinzugefügt bzw. aktiviert. Damit funktioniert zumindest der Zugriff von Windows-Systemen aus, leider funktionieren die Eingaben nicht bei den Netzwerk-Playern (Invalid Login). Die Netzwerk-Player können problemlos auf Windows-Samba-Freigaben, die mit "Jeder" berechtigt sind, zugreifen.

Lässt sich diese "erweiterte" Gastfreigabe irgendwie unter OS X einrichten?

Wiederum danke für die Hilfe!
 
Wie sich herausgestellt hat, hängt dieses Verhalten leider mit der feherhaften SMB-Implementierung von Apple seit Lion zusammen. Da diese seit Jahren Probleme bereitet, gibt es wohl wenig Hoffnung, dass sich da noch etwas im Positiven tut.

Die Lösung war das Deaktivieren von Apples SMB-Stack und Nachinstallieren von Samba 3 über Homebrew. Bei Gelegenheit werde ich noch eine Schritt-für-Schritt-Anleitung posten, wenn ich alle kleinen Fehler gefunden habe, die Anleitungen, die ich bei Google fand, waren leider alle nicht absolut vollständig und haben teils (leichte) Probleme bereitet.
 
Mit SMBUp sollte das leichter gehen.

Achtung: Bitte Post #11 beachten.
 
  • Gefällt mir
Reaktionen: tocotronaut
Das mag sein, bei dem Tool muss man sich allerdings auf den Entwickler verlassen, welche Samba-Version installiert wird und da würde ich gerne selber die Kontrolle haben, da ja ab und an kritische Lücken bekanntwerden, die Updates benötigen.

Wenn man mal alle Schritte weiß, hält sich die Komplexität auch in Grenzen und ist sogar anfängertauglich (hatte zuvor noch nie mit Homebrew zu tun), ich feile gerade noch an der smb.conf-Datei.
 
Hallo Steppenwolfli,

das smbx von Apple lässt sich genauso mit smb.conf bzw. nsmb.conf konfigurieren...

Gruß Andi
 
Klar. Die Konfiguration funktioniert so. Damit beseitigt man aber nicht die Fehler, die Apples SMB seit Jahren hat.
 
Das gelbe vom Ei war es noch nie. Das 10.10 sieht aber vielversprechend aus.
 
Danke für die Beträge!

Wenn hier *irgend jemand* die Fragestellung aus dem Eingangsposting mit SMB-OS X-Boardmitteln lösen könnte, bin ich gerne bereit, Apple hier wieder eine Chance zu geben ;)

Ich scheitere gerade an den Benutzerrechten:

In OS X ist ein lokaler Benutzer ("Mac-Nutzer") angemeldet. Dieser erstellt den Ordner /Volumes/Festplatte/Freigabeordner. Über den Finder wird der Ordner mit den Zugriffsrechten für "Mac-Nutzer", "staff" und "everyone" mit "Lesen & Schreiben" versehen. Mittels smb.conf (externes Samba 3) wird er als Freigabe festgelegt.

smb.conf
Code:
[global]
        server string = Samba-Server
	workgroup = Arbeitsgruppe
	netbios name = MeinMac
	security = user
	map to guest = bad user
        smb passwd file = /usr/local/Cellar/samba/3.6.23/private/smbpasswd
        private dir = /usr/local/Cellar/samba/3.6.23/private
        client NTLMv2 auth = Yes
        log level = 2
        debug timestamp = No
        debug hires timestamp = Yes
        max open files = 16384
        ldap ssl = start tls
        lock directory = /usr/local/Cellar/samba/3.6.23/var/locks
        pid directory = /usr/local/Cellar/samba/3.6.23/var/locks
        usershare path = /usr/local/Cellar/samba/3.6.23/var/locks/usershares
        idmap cache time = 604800
        wide links = No

[Freigabe]
        comment = Dieser Ordner ist freigegeben
        path = /Volumes/Festplatte/Freigabeordner
        guest ok = Yes
        writeable = Yes
	browseable = Yes

Gäste wie Windows-PCs und Medien-Player können - anders als mit dem OS X-eigenen SMB - als Gast ohne die Angabe von Name/Kennwort auf die Freigabe zugreifen, Dateien und Ordner erstellen. Wenn nun aber "Mac-Nutzer" auf die vom Gast erstellten Dateien und Ordner zugreifen oder sie löschen möchte, müssen die Zugriffsrechte erst wieder für die neuen Dateien und Ordner festgelegt werden. Das nervt etwas.

Gibt es eine Möglichkeit, dies zu umgehen, dass also alle Nutzer parallel in innerhalb des besagten Ordners neue Dateien erstellen und löschen können wie sie fröhlich sind?
 
Zuletzt bearbeitet:
Voll kompatible SMB-Gast-Freigabe

Ich denke, alle Probleme sind gelöst.

Hier nun die Schritt-für-Schritt-Anleitung für die Erstellung von SMB-Gast-Freigaben, die auch von Windows- oder Linux-Klienten (wie NAS & Co.) aus funktionieren. Nachteil: Im Finder tauchen nach erfolgter Installation die anderen Computer im Netzwerk nicht mehr von selbst in der Seitenleiste auf, man muss sie manuell im Finder über Gehe zu - Mit Server verbinden via smb://Computername/ verbinden, anschließend werden sie wieder in der Seitenleiste eingeblendet.

Anmerkung: In der Zeile mit Nummerierung beschreibe ich einen Schritt, dann folgt eine Leerzeile und schließlich kommen die Befehle, die ins Terminal kopiert werden können.
Da ich wenig Erfahrung mit der Thematik habe, bin ich für jede konstruktive Kritik dankbar, ich habe es auf zwei unabhängigen Macs mit OS X 10.9.5 getestet, auf denen es ohne jegliche Probleme funktioniert. Ich bin irritiert, dass ich der erste zu sein scheine, dem alle „Eigenheiten“ aufgefallen sind.

DURCHFÜHRUNG AUF EIGENE GEFAHR

1. In OS X mit einem Benutzer mit Admin-Rechten anmelden.

2. Unter Systemeinstellungen - Freigabe sicherstellen, dass die Dateifreigabe deaktiviert ist.

3. Terminal öffnen.

4. „Homebrew“ installieren, damit Samba extern heruntergeladen und kompilliert werden kann:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

5. Falls noch nicht installiert, kommt eine Aufforderung, Xcode zu installieren, diese bejaen und eventuell mit Admin-Kennwort bestätigen.

6. Nach erfolgter Homebrew-Installation prüfen, ob es eventuell schon Updates für Homebrew gibt, die nicht bei der Hauptinstallation mitgeliefert wurden:

brew update

7. Prüfen, ob bei Homebrew alles OK ist:

brew doctor

8. Samba installieren:

brew install samba

Warten, es wird heruntergeladen und kompilliert bzw. installiert, das hat bei einem 4-Kern-Mac insgesamt etwa 5 min gedauert.

9. Mit dem Finder in den Ordner /usr/local/Cellar/samba/3.6.23/etc gehen. Die genaue Versionsnummer im Pfad kann anders sein, zum jetzigen Zeitpunkt ist dies die Version, die installiert wird.

10. In dem Ordner etc die reine Textdatei smb.conf erstellen.

Inhalt der smb.conf-Datei (die Version in den Pfadangaben kann bei der eigenen Installation abweichen!):

Code:
[global]
        server string = Samba-Server
	workgroup = ARBEITSGRUPPE
	netbios name = COMPUTERNAME
	security = user
	map to guest = bad user
        smb passwd file = /usr/local/Cellar/samba/3.6.23/private/smbpasswd
        private dir = /usr/local/Cellar/samba/3.6.23/private
        client NTLMv2 auth = yes
        log level = 2
        debug timestamp = no
        debug hires timestamp = yes
        max open files = 16384
        ldap ssl = start tls
        lock directory = /usr/local/Cellar/samba/3.6.23/var/locks
        pid directory = /usr/local/Cellar/samba/3.6.23/var/locks
        usershare path = /usr/local/Cellar/samba/3.6.23/var/locks/usershares
        idmap cache time = 604800
        wide links = no
	unix extensions = no

[Freigabename]
        comment = Beschreibung der Freigabe
        path = /Volumes/Pfad/zum/Freigabeordner
        guest ok = yes
        writeable = yes
	browseable = yes
	create mask = 0666
	directory mask = 0777

Diese smb.conf ist nur für die Gast-Freigabe konfiguriert! Die Zeile „unix extensions = no“ ist entscheidend für Folgendes: Auch ohne sie können Gäste auf die Freigabe zugreifen, Dateien und Ordner erstellen und löschen. Wenn man allerdings lokal auf dem Mac in den Freigabeordner geht, wird man beim Bearbeiten oder Löschen der von Gästen erstellten Dateien nach dem Admin-Kennwort gefragt, was mich persönlich stört.

11. Zurück ins Terminal. Jetzt werden die laufenden Apple-SMB-Dienste beendet und dauerhaft deaktiviert:

sudo launchctl stop com.apple.netbiosd

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.netbiosd.plist

12. Im Finder zum Pfad /Library/LaunchDaemons wechseln.

13. Erstellen der reinen Textdatei org.samba.nmbd.plist:

Inhalt der org.samba.nmbd.plist-Datei:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
        <dict>
                <key>Label</key>
                <string>org.samba.nmbd</string>
                <key>OnDemand</key>
                <false/>
                <key>ProgramArguments</key>
                <array>
                        <string>/usr/local/Cellar/samba/3.6.23/sbin/nmbd</string>
                        <string>-F</string>
                </array>
                <key>RunAtLoad</key>
                <true/>
                <key>ServiceDescription</key>
                <string>netbios</string>
        </dict>
</plist>

Wichtig: Die Samba-Version in der Pfadangabe muss genau mit der tatsächlich installierten übereinstimmen!

14. Erstellen der reinen Textdatei org.samba.smbd.plist:

Inhalt der org.samba.smbd.plist-Datei:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
        <dict>
                <key>Label</key>
                <string>org.samba.smbd</string>
                <key>OnDemand</key>
                <false/>
                <key>ProgramArguments</key>
                <array>
                        <string>/usr/local/Cellar/samba/3.6.23/sbin/smbd</string>
                        <string>-F</string>
                </array>
                <key>RunAtLoad</key>
                <true/>
                <key>ServiceDescription</key>
                <string>samba</string>
        </dict>
</plist>

Wichtig: Die Samba-Version in der Pfadangabe muss genau mit der tatsächlich installierten übereinstimmen!

15. Zurück ins Terminal. Die erstellten .plist-Dateien müssen vom Benutzer root übernommen und mit entsprechenden Rechten ausgestattet werden:

sudo chown root /Library/LaunchDaemons/org.samba.nmbd.plist

sudo chmod 644 /Library/LaunchDaemons/org.samba.nmbd.plist

sudo chown root /Library/LaunchDaemons/org.samba.smbd.plist

sudo chmod 644 /Library/LaunchDaemons/org.samba.smbd.plist


16. Die nun installierten Samba-Dienste werden gestartet:

sudo launchctl load /Library/LaunchDaemons/org.samba.nmbd.plist

sudo launchctl load /Library/LaunchDaemons/org.samba.smbd.plist


Hinweis: Bei aktivierter OS X-Firewall sollte umgehend die Frage kommen, ob die Dienste eingehende Netzwerkverbindungen annehmen dürfen - dies natürlich bestätigen!


Fertig.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: xbose, tocotronaut und HanSolo86
Freigabe nur für spezifischen Benutzer

Nachtrag: Freigaben mit Benutzername und Kennwort einrichten.

Habe es fast vergessen, natürlich möchte man auch kennwortgeschützte Freigaben bereitstellen können, die OS X-eigene Lösung durch das GUI funktioniert nun ja hierfür nicht mehr, dies ist aber halb so wild.

1. Einen Freigabe-Benutzer über Systemeinstellungen - Benutzer & Gruppen erstellen, dies geschieht durch das Klicken auf das kleine + und anschließend mit dem Drop-Down-Menü bei "Neuer Account", hier „Nur Freigabe“ wählen. Die genaue Schreibweise des Benutzernamens merken. Das hier vergebene Kennwort ist nicht wichtig.

2. Einen Ordner erstellen, den man freigeben möchte. Diesen markiert man mit der Maus, ruft das Kontextmenü auf und geht auf „Informationen“. Unten bei „Freigabe & Zugriffsrechte“ wiederum mit dem kleinen + den beim ersten Schritt erstellten Freigabe-Benutzer hinzufügen und dessen Rechte auf „Lesen & Schreiben“ ändern.

3. Das Terminal öffnen.

4. Den tatsächlichen Freigabe-Benutzer erstellen, mit dem man sich von einem anderen Computer aus anmelden kann:

sudo /usr/local/bin/smbpasswd -a [Genauer-Name-des-vorhin-erstellten-Benutzers]

Vorsicht: Das erste einzugebende Kennwort ist das Admin-Kennwort, damit man die Aktion überhaupt ausführen kann. Das zweite und dritte Kennwort ist schließlich das eigentliche Kennwort des in diesem Moment erstellten Samba-Benutzers und dessen Bestätigung. Dieses Kennwort muss nicht mit dem des im ersten Schritt in den Systemeinstellungen erstellten Freigabe-Benutzers übereinstimmen!

5. Ergänzen der smb.conf-Datei (die gleiche von der Gast-Freigabe weiter oben)

Dies kommt zusätzlich hinein:

Code:
[Benutzer-Freigabe]
        comment = Nur für den Freigabe-Benutzer
        path = /Volumes/Pfad/zum/Ordner/vom/zweiten/Schritt
        guest ok = no
        writeable = Yes
	browseable = Yes
	create mask = 0666
	directory mask = 0777
	force user = [Genauer-Name-des-vorhin-erstellten-Benutzers]

Fertig.

Sollte man über das Netzwerk als Gast auf den Mac zugreifen, wird man diese geschützte Freigabe zwar sehen, aber nicht in sie hineingehen können. Meldet man sich mit dem Freigabe-Benutzer an, kann man natürlich auf sie und zusätzlich auch auf eventuelle Gast-Freigaben zugreifen.
 
  • Gefällt mir
Reaktionen: xbose
Mit SMBUp sollte das leichter gehen.

Ohne eine Negative Nancy sein zu wollen, hatte ich es mir schon fast gedacht. Die automatische Samba-Installation von SMBUp (Version 1.4.1 gerade direkt beim Entwickler geladen) verwendet eine veraltete und vor allem mit KRITISCHER LÜCKE belastete Samba-Version (3.2.15) :-(
"Es ist die schwerst mögliche Lücke in einem Programm" [...]

smbup-installer.png

Wer SMBUp nutzt, sollte dringend manuell die Samba-Version aktualisieren!
 
Selbst installiertes Samba deaktivieren & OS X-SMB reaktivieren

Mein abschließender Beitrag zum Thema beschreibt, wie man das eigens installierte Samba bei Bedarf (eventuell vor einem OS X-Update/Upgrade?) mit dem Terminal abschaltet und das OS X-eigene SMB wieder reaktiviert, also alles auf den Ausgangszustand zurückversetzt:

1. Selbst installiere Samba-Dienste beenden:

sudo launchctl unload -w /Library/LaunchDaemons/org.samba.nmbd.plist

sudo launchctl unload -w /Library/LaunchDaemons/org.samba.smbd.plist


2. Apples OS X-SMB-Dienste wieder aktivieren:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.netbiosd.plist

sudo launchctl start com.apple.netbiosd

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smbd.plist

sudo launchctl start com.apple.smbd

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smb.preferences.plist

sudo launchctl start com.apple.smb.preferences


3. In Systemeinstellungen - Freigaben wieder wie gehabt die SMB-Freigaben festlegen.

Frage: Könnte man dies mit einem schönen grafischen Umschalter in den Systemeinstellungen in der untersten Reihe bei den Drittanbieter-Konfigurationen implementieren? Dazu fehlt mir leider das Know-How, würde aber bestimmt einige Nutzer freuen.

Wenn erfahrenere Nutzer die Details meiner Anleitungen überprüfen würden und Feedback gäben, wäre ich ebenfalls sehr dankbar! Bin immer dafür, wenn etwas auch sauberer oder eleganter zu bewerkstelligen wäre.

Grüße,
Steppenwolfli
 
Hätte ich es selber gefunden oder hätte es mir jemand im Verlauf der letzten Woche empfohlen, hätte ich es auch durchaus probiert ;)
 
Hätte ich es selber gefunden oder hätte es mir jemand im Verlauf der letzten Woche empfohlen, hätte ich es auch durchaus probiert ;)

Nicht sauer sein, aber hin und wieder muss ich auch arbeiten und kann nicht jeden Tag hier reinsehen (auch wenn ich es sooft wie möglich versuche). ;)
 
  • Gefällt mir
Reaktionen: Steppenwolfli
War auch nur ironisch und nicht sarkastisch gemeint! :p

Wobei "[...] it may help to switch back to the slower but more reliable SMB 1." nicht so schön klingt, mit Samba 3 sind sequenziell dauerhaft 112 MiB bzw. 120 MB pro Sekunde drin, wie viel bei einem Thunderbolt-Ethernet von den theoretischen 10 Gb/s möglich wären, kann ich leider nicht testen.

Schaue gerade noch nach einer komfortablen Lösung, das aktuelle Samba 4 unter OS X zu nutzen, das wird leider nicht über Homebrew verteilt - dann wäre man immerhin schon bei SMB 3 wie bei Yosemite.
 
Zuletzt bearbeitet:
Ohne eine Negative Nancy sein zu wollen, hatte ich es mir schon fast gedacht. Die automatische Samba-Installation von SMBUp (Version 1.4.1 gerade direkt beim Entwickler geladen) verwendet eine veraltete und vor allem mit KRITISCHER LÜCKE belastete Samba-Version (3.2.15) :-(

Wer SMBUp nutzt, sollte dringend manuell die Samba-Version aktualisieren!

Da hast du natürlich Recht, SMBUp bietet die manuelle Installation ja auch an.

Schaue gerade noch nach einer komfortablen Lösung, das aktuelle Samba 4 unter OS X zu nutzen, das wird leider nicht über Homebrew verteilt - dann wäre man immerhin schon bei SMB 3 wie bei Yosemite.

Hast du schon probiert, Samba4 aus den Originalquellen zu bauen?
Und was meint SMBUp jetzt zu deiner Installation, lässt sich samba damit verwalten?
 
SMBUp und ein aktuelleres Samba 3 werde ich noch testen.

Was das Bauen von Samba 4 angeht, kommt es leider nach kurzer Zeit zu einem kritischen Fehler, wobei ich nicht sagen kann, was er bedeutet:
Code:
[...] In file included from ../lib/util/genrand.c:24:
In file included from ../source4/../lib/crypto/crypto.h:23:
../source4/../lib/crypto/hmacmd5.h:28:9: error: unknown type name 'MD5_CTX'
        MD5_CTX ctx;
        ^
1 error generated.
Waf: Leaving directory `/usr/local/Cellar/samba-4.1.7/bin'
Build failed:  -> task failed (err #1): 
	{task: cc genrand.c -> genrand_1.o}
make: *** [all] Error 1

Dann stoppt der Prozess. Die vollständige Terminal-Ausgabe kann ich leider nicht einfügen, da es zu viele Zeichen sind. Vorgegangen bin ich wie folgt: Source-Daten entpackt, mit dem Terminal in den Hauptordner der Source gegangen und den Befehl "Make" ausgeführt.
Habe ich da etwas als Laie übersehen?
 
Längere Listings kannst du auf pastebin.com posten (auch anonym) und hier verlinken.

Du musst den üblichen Dreisatz machen: »./configure && make && make install«.
 
Danke für den Tipp mit Pastebin!

Hier die Terminal-Ausgaben:

./configure

make

Ich hoffe, dass man damit etwas anfangen kann.
 
Zurück
Oben Unten