Comment puis-je monter un partage SMB à partir de la ligne de commande?

78

Je voudrais monter un partage réseau SMB à partir de la ligne de commande (terminal); comment pourrais-je m'y prendre?

J'utilise Mac OS X 10.6.4.

Eyvind
la source

Réponses:

71

Vous pouvez facilement y parvenir en utilisant mount_smbfs(ce qui est en fait un wrapper pour mount -t smbfs):

mount_smbfs //user@SERVER/folder ./mntpoint

Ajoutez éventuellement le groupe de travail:

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

Vous pouvez, bien sûr, changer le ./mntpoint(pour quelque chose comme /Volumes/smb).

Après cela, allez simplement sur ./mntpointpour parcourir vos données.

Pour démonter, utilisez la commande suivante:

umount ./mntpoint
Studer
la source
2
Je reçois: `mount_smbfs: erreur de montage: chemin: erreur d'entrée / sortie ', alors qu'il monte la recherche via Finder-> Connect to Server?
Ian Vaughan
Comment puis-je m'y prendre si mon nom d'utilisateur contient @ char? Par exemple, lorsque j'utilise un compte Microsoft comme [email protected]? J'ai essayé de donner le nom d'utilisateur entre guillemets simples et doubles, mais
ça
2
Je reçois cette erreur:mount_smbfs: could not find mount point /Volumes/Share: No such file or directory
Iulian Onofrei
11
Citation de man mountsur OS X Yosemite:Note: You should always use the system mount command and never call mount_smbfs directly.
ssc
3
@Yashvit: remplacez le "@" par "% 40"
WGroleau
70

Utilisez la open(1)commande et une URL:

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

Avantages: Crée le point de montage /Volumespour vous.

Inconvénients: nécessite que le Finder soit en cours d'exécution.

tlindner
la source
4
Je préfère cette version pour les connexions rapides sur mon réseau local. Tous les utilisateurs sont connus. Il s'agit donc d'une commande plus simple, puis d'utiliser mount_smbfs - où j'ai eu des problèmes avec des chemins inexistants - alors que si j'avais besoin de me connecter à un nouveau serveur avec système de fichiers spécial, ou j’aurais besoin d’essayer un autre utilisateur ou d’avoir voulu un point de montage différent - ok - mais combien de fois est-ce que cela se produit ... c’est pourquoi mon pouce se lève pour cette solution plus simple! Bien joué! Ok, je suis un fan de terminal qui a toujours Finder en cours d'exécution, mais c'est comme si 90% d'entre nous, non?
logiciel hexerei
N'est-ce pas Findertoujours ouvert, du moins en tant que processus?
Iulian Onofrei
1
@Iulian Onofrei: Non, sauf si l'utilisateur est connecté de manière interactive. J'ai eu besoin d'utiliser la mountcommande directe dans les cronemplois. En utilisant la opencommande, ils échoueraient si la session interactive avait disparu, par exemple après une panne de courant.
George
En outre, notez que l' openexit est toujours exécuté comme s'il réussissait s'il passait la commande au Finder, même si la commande ne parvenait pas à se connecter ultérieurement au lecteur réseau.
Jonathan Wren
24

Vous devriez jeter un coup d'œil à l'aide de mount:

man mount

En regardant de plus près, vous verrez que le type du système de fichiers est:

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

Le mot de passe (et théoriquement le nom d'utilisateur) est facultatif.

Le résultat de la commande ci-dessus ne produira aucune sortie (si tout va bien), mais a cd /SomeLocalFolderOfChoicedevrait produire les résultats distants. Veuillez noter que SomeLocalFolderofChoice doit exister.

Vous pouvez également utiliser mount_smbfs pour remplacer mont -t smbfs.

Martin Marconcini
la source
5

Ce qui a fonctionné pour moi pour les faire monter au démarrage:

==> /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

Pour une raison quelconque, ni le nom abrégé ni le nom de domaine complet du serveur ne fonctionnaient, j'ai donc utilisé 'ping (nom) pour obtenir l'adresse IP. En d'autres termes, DNS résoudrait le nom, mais mount_smbfs ne pourrait pas.

Et je ne pouvais pas mettre le point de montage dans / Volumes, car le démarrage le supprimerait.

Une bizarrerie: après que cela ait fonctionné pendant quelques jours, LibreOffice, Adobe Reader et Finder n’ont pas pu trouver l’UN des deux partages, mais le shell et TextEdit n’ont eu aucun problème. Après deux ou trois jours, cela a mystérieusement commencé à fonctionner.

Si vous apportez ces modifications et ne souhaitez pas redémarrer, vous pouvez les monter avec 'auto mount -vc'

Mise à jour: plus de bizarreries. (1) Il existe deux systèmes WiFi, et l’un d’entre eux n’a pas accès aux serveurs Windows. Une ou deux fois par semaine, l'un des routeurs ou les deux tombe en panne. Si le "bon" tombe en panne et que le MacBook se connecte automatiquement à l'autre, au lieu de me dire que le lecteur est hors ligne, les pilotes SMB disent "Trop d'utilisateurs." (2) Une ou deux fois par semaine, je reçois une «autorisation refusée» lorsque j'essaie d'accéder à mes fichiers Windows. Cela dure généralement environ une demi-heure, au cours de laquelle je peux me connecter à un bar Windows et voir les fichiers ayant le même identifiant et le même mot de passe.

WGroleau
la source
Comme cela a été voté deux fois cette semaine, il faut noter qu'il a été écrit il y a plusieurs versions de MacOS.
WGroleau
4

Utiliser AppleScript est pratique car il stocke vos mots de passe dans le trousseau. Fonction Bash:

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

Invoquez 'mymount' depuis bash, entrez les mots de passe via la fenêtre contextuelle du trousseau standard et, si tout se passe bien, les volumes demandés seront montés dans / Volumes.

Wytten
la source
C'est une approche parfaite aussi. Je n'aime pas les réponses approuvées car elles se montent en tant qu'utilisateur root. À mon avis, ces solutions /usr/bin/osascript -e 'mount volume "smb://username:password@server/share"'open /Volumes; open 'smb://username:password@server/share'
uniques
3

J'ajouterais que si vous avez un nom d'utilisateur de la forme "groupe de travail \ nom d'utilisateur", vous devez le monter comme suit:

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

Source: adapter un exemple d' ici

Matthieu
la source
-1

ancien post mais qu'en est-il du montage comme ceci:

smb://no_username:password@MACHINENAME 

comme la machine à voyager dans le temps?

BarclayVision
la source
1
"depuis la ligne de commande (terminal)" ... ceci n'est pas une commande bash valide. Je suppose que vous voulez dire avec Finder + ⌘K pour vous connecter au serveur, ce qui n’est pas ce que l’opérateur a demandé.
mattmc3