Skip to content

Instantly share code, notes, and snippets.

@natritmeyer
Created September 19, 2013 09:40
Show Gist options
  • 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
@schovi
Copy link

schovi commented Nov 7, 2016

Awesome. Behaviour of Finder is really really really bad :(

@vbotay
Copy link

vbotay commented Jan 26, 2017

Does anybody know workaround if password ends with '!' ?
In that case I have following error message

-bash: !@10.0.0.3/Users: event not found

@mschwartz
Copy link

mschwartz commented Apr 6, 2017

\!

@S99P
Copy link

S99P commented Oct 4, 2017

After reading this I tried:

mkdir WinShare

I checked that it was there and then tried the mount_smbfs command with modification of variable names and ran:

mount_smbfs //leUserName:lePassWord@WinBox-pc/WinShare WinShare/

The shell wrote:

mount_smbfs: mount error: /Users/MyVolume/Desktop/WinShare: Unknown error: -1073741412

I checked that WinShare folder was where it was supposed to be (I was on the Desktop for everything, including Terminal).

I can't find error -1073741412 anywhere. Can anyone educate me? TIA

BTW I've opened the WinBox-pc using: open smb://WinBox-pc/DATA/ (opens the DATA folder on WinBox-pc)

So I tried:

open smb://leUserName:lePassWord@WinBox-pc/DATA/

and that works; we don't have to retype the Username and Password, and our target folder on WinBox-pc opens.
Again, can anybody educate me as to why this works but mount_smbfs doesn't?
TIA
s99p

@ilovefood2
Copy link

im trying to use domain account to map a share on server, how can i enter username here?
smb://domainName\userName:password@server1/share1 ./share1

is this correct syntax??
thanks

@perat
Copy link

perat commented Jan 11, 2018

@ikelca, no the format is:
smb://domainName;userName:password@server1/share1 ./share1

@arcreative
Copy link

arcreative commented Apr 26, 2018

My password had some special characters in it, using encodeURIComponent('my password123!%%^^') from any browser's web inspector or node should work fine.

@huesi72
Copy link

huesi72 commented May 2, 2018

wheres is my problem ??

I can connect to server with this:
smb://domain;user:password@ipaddress/folder/subfolder

But I can not connect from terminal:
mount_smbfs smb://domain;user:password@ipaddress/folder/subfolder

@yuyou
Copy link

yuyou commented Nov 27, 2018

But I can not connect from terminal:
mount_smbfs smb://domain;user:password@ipaddress/folder/subfolder

mount_smbfs smb://domain;user:password@ipaddress/folder/subfolder /your_local_pre_existing_folder

Also you can specify the attributes like: -f 0755 -d 0755

@vaxilicaihouxian
Copy link

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

@superkeyor
Copy link

for special character in password, see here https://stackoverflow.com/a/37179333/2292993. replace with special code
@ -> %40
$ -> %24
! -> %21

@mwmcode
Copy link

mwmcode commented Nov 16, 2019

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

@vaxilicaihouxian, any success?

@vaxilicaihouxian
Copy link

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

@vaxilicaihouxian, any success?

No

@x3l51
Copy link

x3l51 commented May 30, 2020

Guys I had a similar problem and created a script for this. I had the problem with passing a domain name as username containing a backslash and a very secure password containing a lot of special characters. Here you can see it.

I also have made a script that mounts shares automatically and uses the keychain so it is non-interactive. Should I upload it as well? I use it everyday and trigger it with ip-up (ppp), so all my network shares connect automatically every time I connect to a specified VPN.

@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/"

@mbyrne00
Copy link

mbyrne00 commented Aug 16, 2024

For those who keep getting File exists without sudo it may be that you already have that drive mounted in Finder. In my case I was exploring the drive in finder. When I unmounted that it worked a charm.

Details and an automation script available: https://stackoverflow.com/a/78877529/945789

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