Wie kann ich eine SMB-Freigabe über die Befehlszeile bereitstellen?

78

Ich möchte eine SMB-Netzwerkfreigabe über die Befehlszeile (Terminal) bereitstellen. Wie würde ich das machen?

Ich verwende Mac OS X 10.6.4.

Eyvind
quelle

Antworten:

71

Sie könnten dies leicht erreichen mit mount_smbfs(was eigentlich ein Wrapper für ist mount -t smbfs):

mount_smbfs //user@SERVER/folder ./mntpoint

Fügen Sie optional die Arbeitsgruppe hinzu:

mount_smbfs -W workgroup //user@SERVER/folder ./mntpoint

Du könntest natürlich das ändern ./mntpoint(für sowas /Volumes/smb).

Gehen Sie danach einfach zu, ./mntpointum Ihre Daten zu durchsuchen.

Verwenden Sie den folgenden Befehl, um die Bereitstellung aufzuheben:

umount ./mntpoint
Studer
quelle
2
Ich bekomme: `mount_smbfs: mount error: path: Input / Output error ', während es über Finder-> Connect to Server findet?
Ian Vaughan
Wie gehe ich vor, wenn mein Benutzername ein @ Zeichen enthält? Zum Beispiel, wenn ich ein Microsoft-Konto wie [email protected] verwende? Ich habe versucht, den Benutzernamen in einfachen und doppelten Anführungszeichen
anzugeben,
2
Ich bekomme diese Fehlermeldung:mount_smbfs: could not find mount point /Volumes/Share: No such file or directory
Iulian Onofrei
11
Zitat aus man mountOS X Yosemite:Note: You should always use the system mount command and never call mount_smbfs directly.
ssc
3
@Yashvit: Ändern Sie das '@' in '% 40'
WGroleau
70

Verwenden Sie den open(1)Befehl und eine URL:

open 'smb://username:password@server/share'

Vorteile: Erstellt den Einhängepunkt /Volumesfür Sie.

Nachteile: Erfordert, dass der Finder ausgeführt wird.

Lindner
quelle
4
Ich bevorzuge diese Version für schnelle Verbindungen in meinem lokalen Netzwerk, da alle Benutzer bekannt sind, ist dies ein einfacherer Befehl als die Verwendung von mount_smbfs - wo ich tatsächlich Probleme mit nicht vorhandenen Pfaden hatte - während ich mich mit einem neuen Server verbinden müsste spezielles Dateisystem, oder ich müsste es mit einem anderen Benutzer versuchen oder wollte einen anderen Einhängepunkt - ok - aber wie oft passiert das ... also mein Daumen geht nach oben für diese einfachere Lösung! Gut gemacht! Ok, ich bin ein Terminal-Freak, auf dem Finder noch läuft, aber das sind 90% von uns, oder?
hexerei software
Wird nicht Finderimmer geöffnet, zumindest als Prozess?
Iulian Onofrei
1
@Iulian Onofrei: Nur wenn der Benutzer interaktiv angemeldet ist. Ich musste den Direktbefehl mountin cronJobs verwenden. Bei Verwendung des openBefehls würden diese fehlschlagen, wenn die interaktive Sitzung unterbrochen würde, z. B. nach einem Stromausfall.
George
Beachten Sie außerdem, dass das openProgramm immer beendet wird, als wäre es erfolgreich, wenn der Befehl an Finder weitergeleitet wird, auch wenn der Befehl später keine Verbindung zum Netzlaufwerk herstellen konnte.
Jonathan Wren
23

Sie sollten sich die Hilfe von mount ansehen:

man mount

Bei näherer Betrachtung werden Sie feststellen, dass der Typ des Dateisystems:

mount -t smbfs //username:password@MACHINENAME/SHARENAME /SomeLocalFolderOfChoice

Passwort (und theoretisch Benutzername) sind optional.

Das Ergebnis des obigen Befehls ist keine Ausgabe (wenn alles in Ordnung ist), aber a cd /SomeLocalFolderOfChoicesollte die Remote-Ergebnisse liefern. Bitte beachten Sie, dass SomeLocalFolderofChoice vorhanden sein muss.

Sie können auch mount_smbfs verwenden, um mount -t smbfs zu ersetzen.

Martin Marconcini
quelle
5

Was hat bei mir funktioniert, damit sie beim Booten eingebunden werden:

==> /etc/auto_master <==
#
# Automounter master map
#
+auto_master        # Use directory service
/net            -hosts      -nobrowse,hidefromfinder,nosuid
/home           auto_home   -nobrowse,hidefromfinder
/Network/Servers    -fstab
/-          -static
/-          auto_smb          # add this line <**********

==> /etc/auto_smb <==         # Create this if it doesn't exist <****
/(not Volumes)/Public   -fstype=smbfs,soft smb://(user):(password)@192.168.140.5/data/Public
/(not Volumes)/ WGroleau -fstype=smbfs,soft smb://(user):(password)@192.168.140.5/data/Students/wes_groleau

Aus irgendeinem Grund hat weder der Kurzname noch der FQDN des Servers funktioniert, daher habe ich 'ping (name) verwendet, um die IP zu erhalten. Mit anderen Worten, DNS würde den Namen auflösen, mount_smbfs jedoch nicht.

Und ich konnte den Mount-Punkt nicht in / Volumes setzen, weil das Booten ihn löschen würde.

Eine Besonderheit: Nachdem dies ein paar Tage, zwei oder drei Tage lang gut funktioniert hatte, konnten LibreOffice, Adobe Reader und Finder EINE der beiden Freigaben nicht finden, aber die Shell und TextEdit hatten kein Problem. Nach zwei oder drei Tagen begann es auf mysteriöse Weise wieder zu funktionieren.

Wenn Sie diese Änderungen vornehmen und nicht neu starten möchten, können Sie sie mit "auto mount -vc" bereitstellen.

Update: Weitere Macken. (1) Hier gibt es zwei WiFi-Systeme, von denen eines keinen Zugriff auf die Windows-Server hat. Ein paar Mal pro Woche fällt einer oder beide Router aus. Wenn der "Gute" ausfällt und das MacBook automatisch eine Verbindung zum anderen herstellt, sagen die SMB-Treiber "Zu viele Benutzer", anstatt mir mitzuteilen, dass das Laufwerk offline ist. (2) Einige Male in der Woche erhalte ich die Meldung "Genehmigung verweigert", wenn ich versuche, auf meine Windows-Dateien zuzugreifen. Dies dauert normalerweise etwa eine halbe Stunde. In dieser Zeit kann ich mich in einer Windows-Leiste anmelden und Dateien mit derselben ID und demselben Kennwort anzeigen.

WGroleau
quelle
Da dies in dieser Woche zweimal hochgestuft wurde, sollte ich darauf hinweisen, dass es vor einigen Versionen von MacOS geschrieben wurde.
WGroleau
4

Die Verwendung von AppleScript ist praktisch, da Ihre Kennwörter im Schlüsselbund gespeichert werden. Bash-Funktion:

function mymount
{
    osascript <<EOF
mount volume "smb://user@fqdn1/volume1"
mount volume "smb://user@fqdn2/volume2"
EOF
}

Rufen Sie 'mymount' in bash auf, geben Sie Kennwörter über das Standard-Schlüsselbund-Popup ein, und wenn alles gut geht, werden die angeforderten Volumes in / Volumes gemountet.

wytten
quelle
Das ist auch der perfekte Ansatz. Ich mag keine genehmigten Antworten, da sie als Rootbenutzer aktiv sind. Meiner Meinung nach sollten diese Einzeiler die besten Optionen sein: /usr/bin/osascript -e 'mount volume "smb://username:password@server/share"'oderopen /Volumes; open 'smb://username:password@server/share'
8.
3

Ich würde hinzufügen, dass, wenn Sie einen Benutzernamen der Form "Arbeitsgruppe \ Benutzername" haben, Sie ihn wie folgt einhängen sollten:

mount -t smbfs "//WORKGROUP;username:password@MACHINENAME/SHARENAME" /SomeLocalFolderOfChoice

Quelle: Anpassung eines Beispiels von hier

matthieu
quelle
-1

alter Beitrag, aber was ist mit Montage wie folgt:

smb://no_username:password@MACHINENAME 

wie die Zeitmaschine fährt?

BarclayVision
quelle
1
"von der Kommandozeile (Terminal)" ... dies ist kein gültiger Bash-Befehl. Ich nehme an, Sie meinen mit Finder + ⌘K eine Verbindung zum Server herzustellen, was vom OP nicht verlangt wurde.
mattmc3