Skip to content

Instantly share code, notes, and snippets.

@natritmeyer
Created September 19, 2013 09:40
Show Gist options
  • Star 59 You must be signed in to star a gist
  • Fork 17 You must be signed in to fork a gist
  • Save natritmeyer/6621231 to your computer and use it in GitHub Desktop.
Save natritmeyer/6621231 to your computer and use it in GitHub Desktop.
How to mount and unmount a SMB share on Mac OS X (using mount_smbfs)
#Mounting the share is a 2 stage process:
# 1. Create a directory that will be the mount point
# 2. Mount the share to that directory
#Create the mount point:
mkdir share_name
#Mount the share:
mount_smbfs //username:password@server.name/share_name share_name/
#Unmount the share:
umount share_name
@Caipers
Copy link

Caipers commented Jun 22, 2020

I actually had to scape ';':
mount_smbfs smb://domain;user:password@ipaddress/folder/subfolder /your_local_pre_existing_folder

@mpc0
Copy link

mpc0 commented Jan 2, 2021

@x3l51 It would be great if you could share the script you made that mounts shares automatically and uses the keychain so it is non-interactive.

@tamala73
Copy link

tamala73 commented Mar 3, 2021

@x3l51 Awesome, could you share the script that mounts shares automatically and uses the keychain?

@tarnold-papajohns
Copy link

Thank you! This speeds up my transfer of over a gig of data tremendously. Finder is HORRIBLE!

@j3pic
Copy link

j3pic commented Dec 5, 2021

This requires root on macOS 10.15.7, and the resulting mount will be root-owned and require root to access.

@Traace
Copy link

Traace commented Dec 28, 2021

@j3pic, since macOS 10.15 you can still mount to your user directory without root.
For example use shortcut: ~/your_share
It will get mounted in: /Users/your_username/your_share

Also check "man mount_smbfs" - it teaches you about soft, sessionencrypt and shareencrypt parameters. Very useful :)

@j3pic
Copy link

j3pic commented Jan 3, 2022

@Traace No, it doesn't work unless you're root.

If you try it from a non-root account, one of the following two errors will happen:

If the mount-point (~/your_share in your example) is an existing directory, you'll get this error:

mount_smbfs: mount error: /Users/your_username/your_share: File exists

If the directory does not exist, you'll get this error instead:

mount: realpath /Users/your_username/your_share: No such file or directory

If you do it as root, the operation will succeed (edit: if the mount-point directory exists), but the mount will be owned by root.

It doesn't matter if you use mount -t smbfs ... or if you call mount_smbfs directly.

@artbendandi
Copy link

This saved me today, thanks for posting!

@easp
Copy link

easp commented Feb 10, 2022

@j3pic. Something else must be going on.
On Monterey I just did: mount -t smbfs //username@server.local/share ~/mnt. It mounted without error and I can access it without needing sudo.

@spartaaa-git
Copy link

@j3pic @easp The user must be an admin in order to run the mount or mount_smbfs commands because both exist in /sbin. It will be owned by the account that runs the command. In my case, I am trying to run some form of this command in a script from Jamf for a Standard user to access. I have been able to make this work by doing running this as root:
sudo -u localUser mount -t smbfs //username@server.local/share ~/mnt

@j3pic
Copy link

j3pic commented May 5, 2022

@spartaaa-git Why do people keep insisting that this works? It doesn't. My account was admin. You have to be root. The command you suggested exhibits the same behavior I described originally.

@j3pic
Copy link

j3pic commented May 5, 2022

@easp Monterey deprecates all kinds of features on Intel Macs. I won't be upgrading to it.

@kfix
Copy link

kfix commented Sep 25, 2022

If you're wondering why this won't work for connecting with a very old share (Win98!) in monterey and you see:

joey@ghostbook mnt % mount_smbfs //tinyking98/c tinyking
mount_smbfs: server connection failed: Unknown error: -5996

this shows up in Console.app:
smb1_smb_negotiate: Support for the server TINYKING98 has been deprecated (PreXP), disconnecting

adding this to /etc/nsmb.conf doesn't help:

[default]
# allow SMB 1+2+3
protocol_versmap=7

edit:
It turns out this notice is present in older versions too; google shows a complaint on El Capitan, I got it in Catalina.
you can find the source of the error log here:
https://github.com/apple-opensource-mirror/smb/blob/98c9fff3ade4b449013c0d106c45b6ffb35cf609/kernel/netsmb/smb_smb.c#L421

else where in that codebase, we see that
#define SMB_ENETFSNOPROTOVERSSUPP -5996
😭

it only seems to show when using the mount_smbfs tool and not via the Finder.

I have an old PPC eMac running 10.5.8 (Leopard) and the mount succeeds on there!

@bilogic
Copy link

bilogic commented Jun 22, 2023

Can update the gist for Monterey which requires adding WORKGROUP?

mount_smbfs //'WORKGROUP;username':password@remote-host/shared local-mount-point/

@arisolt
Copy link

arisolt commented Jun 22, 2023

mount_smbfs: mount error: /Users/machenchi/shareDev: No such file or directory
But I have made a dir with mkdir /Users/machenchi/shareDev

@vaxilicaihouxian @mwmcode I had the same issue. I fixed it by putting the last argument (i.e the mounting point) in quotes. So, the original command becomes:

mount_smbfs //username:password@server.name/share_name "share_name/"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment