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.

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

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 xyz@microsoft.com 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.


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.


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.


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.


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


-1

alter Beitrag, aber was ist mit Montage wie folgt:

smb://no_username:password@MACHINENAME 

wie die Zeitmaschine fährt?


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.