Mounten von Samba-Freigaben unter /Volumes ohne GUI-Fluff

Ich weiß, dass ich die Samba-Freigabe mit dem Befehl mountoder von der Terminal-Shell mounten kann. openSiehe diese verwandte Frage: Wie kann ich eine SMB-Freigabe über die Befehlszeile bereitstellen? . Ich bevorzuge die Verwendung, openweil es den freigegebenen Ordner einbindet, unter /Volumesdem eine Art OS X-Standard zu sein scheint, das erwartete Ding. Dies geschieht nämlich durch Tippen

open "smb://guest:@${host}/${path_component}"

(wobei ${host}der Hostname oder die IP-Adresse der Samba-Freigabe und ${path_component}der Pfad oder "Name" der Samba-Freigabe ist). Das Ergebnis und die Hauptsache ist, dass ich auf die Sachen von zugreifen kann /Volumes/${path_component}. Das ist wirklich sehr schön. Es gibt nur zwei Probleme oder Ärgernisse, dies innerhalb von Skripten zu tun. Das erste ist, dass dies eine überflüssige Fortschrittsanzeige und dann ein Finder-Fenster öffnet. Die zweite, geringere, da es skriptfähige Problemumgehungen gibt, ist, dass der Befehl sofort zurückkehrt, ohne darauf zu warten, dass der Mount wirklich verfügbar ist.

Gibt es eine Möglichkeit, Samba-Freigaben (synchron) zu mounten, /Volumesohne dass fremde Fenster auftauchen?

(Ich verwende das neueste OS X (Sierra).)

Antworten (1)

Folgendes verwende ich zum Mounten von Samba-Freigaben über launchd:

/usr/bin/osascript -e "try" -e "mount volume \"smb://guest@${host}\"" -e "end try"

Die Verwendung osascriptvon mountbedeutet, dass jeder keychainerforderliche Zugriff "automatisch" erfolgt, es gibt keine Fortschrittsanzeige oder kein Finder-Fenster, und der Befehl wartet darauf, dass das Mount verfügbar ist, bevor er fortfährt (versuchen Sie es mit && echo -n "Done."; mountangehängt an das Ende des obigen Befehls, um dies zu testen).

OSA-Skript? Das ist etwas seltsames Zeug, aber es funktioniert genau so, wie ich es will! Danke!
@FooF osascript ist die Befehlszeilenschnittstelle für AppleScript.
Perfekt. Für Freigaben, die eine Authentifizierung erfordern, können Sie im obigen Befehl smb://guest@$hostdurch ersetzen.smb://username:password@$host
Liebte diese Antwort, aber jetzt ... meine smb-Freigabe hat den Host geändert ... wie aktualisieren wir dieses Skript? Außerdem bin ich mir nicht sicher, ob dies Standard ist, aber /usr/bin/osascript ist derzeit für mich nicht für Änderungen zugänglich ... selbst wenn ich sudo. Dies ist mein Arbeitslaptop, daher ist es durchaus möglich, dass mein Arbeitgeber dies gesperrt hat, seit ich dieses Skript zum ersten Mal ausgeführt habe, und ich muss mich möglicherweise nur mit dem Fehlerdialog befassen, wenn das Mounten fehlschlägt.
Es funktioniert, außer selbst wenn ich ein Passwort hinzufüge, fragt es immer noch nach einem. Ein Fenster öffnet sich und fordert mich auf, das Passwort einzugeben
Ich habe dies versucht und der Schlüsselbund-Zugriffsteil scheint nicht zu funktionieren. Fragt nur immer wieder nach Benutzerdaten. Zunächst ist der Benutzername root vorausgefüllt und fragt nach dem Passwort. Die Verwendung von su <username> -c '<commands>' setzt den lokalen Benutzernamen anstelle von root, aber die Fernbedienung benötigt einen anderen. dann löst das Setzen von smb://username@ diesen Teil, aber immer noch kein passwd. Scheint, dass auf Kechain überhaupt nicht zugegriffen wird?