HowTo: Auto Mounting Samba Shares Using AutoFS

Write tutorials here
There are more tutorials here http://community.linuxmint.com/tutorial/welcome
Forum rules
Do not start a support topic here please. Before you post please read this

HowTo: Auto Mounting Samba Shares Using AutoFS

Postby altair4 on Fri Sep 13, 2013 9:00 am

HowTo: Auto Mounting Samba Shares Using AutoFS

This HowTo assumes you can already access a samba share but want to have these shares available automatically when you log into your machine.

AutoFS is a unique utility that allows a user to automatically connect to, mount, and use a samba share when the desired mount point is accessed and disconnects when not in use. It offers some distinct advantages over other methods.

** Unlike the standard fstab method there is no delay in booting the machine if the target server is not present and because of the way it designed there is no delay if the server goes down before you logoff the client.

** It is not gvfs based so it provides further advantages:
-- gvfs has been rewritten and appears to be quite buggy at the moment so AutoFS can be used to replace Gigolo.
-- No gvfs dependency means it can be used in KDE ( It's used in OSX so it's truly cross platform )
-- No gvfs dependency means you can access samba shares in non-gvfs aware applications.
-- You have control over where the share is mounted

[1] Install the following packages:
Code: Select all
sudo apt-get install cifs-utils
sudo apt-get install autofs

[2] Edit /etc/auto.master as root ( gksu gedit /etc/auto.master) and add the following line before the "+auto.master" line:
# Note that if there are entries for /net or /misc (as
# above) in the included master map any keys that are the
# same will not be seen as the first read key seen takes
# precedence.
#
/mnt/Samba /etc/auto.sambashares --timeout=30 --ghost
+auto.master

/mnt/Samba is the parent folder under which all your samba shares will be mounted and can be set anywhere but it's best to stay away from your home directory and definitely stay away form /media since the system uses that for other things.
/etc/auto.sambashares is where you define how the shares are to me mounted - called the map file.
timeout is the amount of time before an unused share is unmounted.
ghost creates “ghost” versions (empty directories) of all the mount points - mounted or not.

[3] Create a new file which will define the actual mount - the map file:
Code: Select all
gksu gedit /etc/auto.sambashares

[4] Using the following as templates add the appropriate line to /etc/auto.sambashares:

[4a] If the share allows guest access you can use one of these depending on your version on Mint:
Code: Select all
ShareName -fstype=cifs,rw,uid=1000,iocharset=utf8 ://server/share
ShareName -fstype=cifs,rw,uid=1000,guest,iocharset=utf8 ://server/share

Note: LMDE requires that the "guest" option be added to the line.

*** Some servers require that the username "guest" be passed with a blank password ( enter space key after "password=") for guest shares:
Code: Select all
ShareName -fstype=cifs,rw,username=guest,password= ,uid=1000,iocharset=utf8 ://server/share
ShareName -fstype=cifs,rw,credentials=/home/altair/secret.txt,uid=1000,iocharset=utf8 ://server/share

Note: LMDE will not work with username and password in the line so it must use the "credentials" file.

The credentials file requires you to create in your own home directory a secret.txt file ( as in /home/altair/secret.txt ) that has the following content:
Code: Select all
username=guest
password=

Note: there is a space after the password=. You are passing the username "guest" and a space " " as the password.

[4b] If you require full credentials to access the remote share you can use one of these:
Code: Select all
ShareName -fstype=cifs,rw,username=name,password=secret,uid=1000,iocharset=utf8 ://server/share
ShareName -fstype=cifs,rw,credentials=/home/altair/secret.txt,uid=1000,iocharset=utf8 ://server/share

Note: LMDE will only work when the "credentials" file is specified.

The credentials file requires you to create in your own home directory a secret.txt file ( as in /home/altair/secret.txt ) that has the following content - example:
Code: Select all
username=altair
password=altairspw

In all cases your remote share will appear at /mnt/Samba/ShareName so choose something meaningful to you for ShareName.

[5-Optional] To restrict access to the auto.sambashares files so no one but root can see the username and password you can do this:
Code: Select all
sudo chmod 0600 /etc/auto.sambashares

And you can do the same for your secret file:
Code: Select all
chmod 0600 /home/altair/secret.txt

[6] Restart autofs:
Code: Select all
sudo service autofs restart


How this will work:
*** For all the shares specified in auto.sambashares you do not mount them under Network in your File Manager or "Connect to Server".
*** You access ( and mount ) them by accessing the mount point itself under /mnt/Samba in whatever application you are using.
*** Autofs will create the /mnt/Samba directory and the /mnt/Samba/ShareName mount point by itself based on the files you edited above.
*** The mount will automatically unmount itself after 30 ( based on "--timeout=30" in auto.master ) seconds of non use but you can adjust that to your needs. This is really all transparent to the user since any access will keep it alive.

EXAMPLE: This is an example of a /etc/auto.sambashares file that defines multiple shares on different servers:
Code: Select all
Box1-Downloads -fstype=cifs,rw,uid=1000,iocharset=utf8 ://box1.local/downloads
Box2-Documents -fstype=cifs,rw,uid=1000,iocharset=utf8 ://box2.local/documents
NAS-Test -fstype=cifs,rw,uid=1000,username=name,password=secret,sec=ntlm,iocharset=utf8 ://nas/test

Example notes:
*** The server can be expressed in the normal samba accepted formats, namely:
ip address ( ://192168.0.100/downloads )
mDNS qualified host name which all Linux and OSX machines use ( ://box1.local/downloads )
netbios or hostname alone ( ://box1/downloads )
*** It can accept certain options so in the nas example above I had to add the the old "sec=ntlm" option because the nas won't accept access without it.

For more templates see the next post and the ones I've started here: viewtopic.php?f=42&t=144997#p822762
Last edited by altair4 on Thu Sep 11, 2014 1:33 pm, edited 19 times in total.
Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.
altair4
Level 16
Level 16
 
Posts: 6269
Joined: Tue Feb 03, 2009 10:27 am

Linux Mint is funded by ads and donations.
 

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby altair4 on Sat Sep 21, 2013 12:28 pm

So what do you do when you have multiple concurrent users on the same client machine?

Let's say you have 2 users named john and mary.

[1] Create another directory for each local user, change ownership to that user, and change permissions to allow access only to that user. So for john:
Code: Select all
sudo mkdir /mnt/john
sudo chown john /mnt/john
sudo chmod 0770 /mnt/john

Do the same for the mary user

[2] Replace the one /etc/auto.sambashares line in /etc/auto.master to one line for each user:
/mnt/john/Samba /etc/auto.sambashares-john --timeout=30 --ghost
/mnt/mary/Samba /etc/auto.sambashares-mary --timeout=30 --ghost

[3] Then create those files:
/etc/auto.sambashares-john
/etc/auto.sambashares-mary

[4] Change the templates that I had in the original post to reflect the uid of each user. So for example mary's file at /etc/auto.sambashares-mary would look something like this:
server-share -fstype=cifs,rw,uid=1001,iocharset=utf8 ://server/share

Where 1001 is mary's uid number. To find that number run this command:
Code: Select all
id mary

[5] An now restart the autofs service:
Code: Select all
sudo service autofs restart
Last edited by altair4 on Thu Feb 13, 2014 3:39 pm, edited 2 times in total.
Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.
altair4
Level 16
Level 16
 
Posts: 6269
Joined: Tue Feb 03, 2009 10:27 am

Re: Save to a Samba Location in all Applications ( AutoFS )

Postby JulianGalbraith on Sun Nov 24, 2013 3:58 pm

Hi. I found your topic searching around because I needed to access a samba share mounted in nemo with another application. Obviously it was mounting it somewhere since I can run and open files directly.



I would like to add that if users are looking to access the shares accross all application that all they need to do is:

1. Mount it with nemo
2. Navigate in their application to /run/user/$USERNAME/gvfs
3. It might be a good idea to add gvfs to your shortcut panel in the file browser.


Your method is great for certain purposes. But this is what I really needed for mine. Thanks!
JulianGalbraith
Level 1
Level 1
 
Posts: 2
Joined: Sun Nov 24, 2013 3:41 pm

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby altair4 on Sun Nov 24, 2013 4:49 pm

My post is in the HowTo section of the forum. As such it details a specific way to achieve a certain goal a certain way. Anyone having problems implementing it should feel free to post here and I will endeavor to try and find out why it is not working for them.

What this is not is a venue for others to propose alternatives to the posted method. That is not true because it is my HowTo but because it is simply a HowTo. This is the case not because it is in this forum but is pretty much the accepted norm in all forums.

Any member is always free to create their own Howto's and regardless of how much I might disagree with the approach I would afford the author the same courtesy.
Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.
altair4
Level 16
Level 16
 
Posts: 6269
Joined: Tue Feb 03, 2009 10:27 am

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby ianmoone on Mon Feb 03, 2014 4:12 pm

ok so I went through this and am trying to automount the drive on my aios media player I can access the mediaplayer through filezilla"/192.168.0.10/root/tmp/usbmounts/sda1"
but I am no sue if this is correct way to automount in the auto.samdashares file, I have this as the line "server-share -fstype=cifs,rw,uid=1000,iocharset=utf8 ://192.168.0.10/root/tmp/usbmounts/sda1"
after I added that line and saved it I sudo sevice autofs restart
the thing is I am not sure if it is actually mounted
ianmoone
Level 1
Level 1
 
Posts: 4
Joined: Mon Jan 27, 2014 1:54 pm

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby altair4 on Mon Feb 03, 2014 5:01 pm

In reverse order:
the thing is I am not sure if it is actually mounted

Go into your file manager and go to /mnt/Samba/server-share. It's either mounted or not.
I have this as the line "server-share -fstype=cifs,rw,uid=1000,iocharset=utf8 ://192.168.0.10/root/tmp/usbmounts/sda1"

This HowTo concerns automounting a samba share and "//192.168.0.10/root/tmp/usbmounts/sda1" is not how you specify a samba share. It's also not at all clear that you created a samba share on the device you are trying to access. The format is: ://server/share
Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.
altair4
Level 16
Level 16
 
Posts: 6269
Joined: Tue Feb 03, 2009 10:27 am

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby ianmoone on Mon Feb 03, 2014 7:23 pm

I don't have /mnt/Samba/server-share I have /mnt/Samba/etc/auto.sambashares-timeout=30 I uess I messed that up.
I guess what I am actually dong is trying to be able to access the Aios mediaplayer which I am pretty sure this is totally different from what this tut is doing .
ianmoone
Level 1
Level 1
 
Posts: 4
Joined: Mon Jan 27, 2014 1:54 pm

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby altair4 on Tue Feb 04, 2014 7:42 am

If you haven't installed the samba server and created a samba share on this Aios mediaplayer thingy then you are indeed not using the correct HowTo.
I don't have /mnt/Samba/server-share I have /mnt/Samba/etc/auto.sambashares-timeout=30 I uess I messed that up.

Clearly I have done a poor job if that is how you read my HowTo. I will try to rewrite parts of it to make it more clear.
Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.
altair4
Level 16
Level 16
 
Posts: 6269
Joined: Tue Feb 03, 2009 10:27 am

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby kwisher on Tue Feb 04, 2014 9:23 am

altair4,

Great How-To. I am definitely bookmarking this for future reference when I have time to give it a try. I know you meant these instructions for Mint users but I am running Manjaro currently. Do you mind if I append instructions for Manjaro once I try your How-To? First thing I noticed is that the config files that you mentioned for editing are located at /etc/autofs, but so far that is the only difference.

Thank you.
The instructions suggested Windows XP or better, so I installed Linux :)
User avatar
kwisher
Level 5
Level 5
 
Posts: 650
Joined: Wed Mar 05, 2008 12:54 pm
Location: Greentown, Indiana USA

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby altair4 on Tue Feb 04, 2014 1:10 pm

I don't know how relevant having a Manjaro addendum to this HowTo would be but if you want to modify it and use it on the Manjaro forum I don't see how I can stop you :)
Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.
altair4
Level 16
Level 16
 
Posts: 6269
Joined: Tue Feb 03, 2009 10:27 am

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby kwisher on Thu Feb 06, 2014 11:23 am

altair4 wrote:I don't know how relevant having a Manjaro addendum to this HowTo would be but if you want to modify it and use it on the Manjaro forum I don't see how I can stop you :)

I didn't mean Manjaro specific instructions per se, Just that other distro's might change the location of the config files.
The instructions suggested Windows XP or better, so I installed Linux :)
User avatar
kwisher
Level 5
Level 5
 
Posts: 650
Joined: Wed Mar 05, 2008 12:54 pm
Location: Greentown, Indiana USA

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby altair4 on Thu Feb 13, 2014 3:58 pm

Note: This is a continuation of the original post which I reserve for additional templates as I think of them.

*** You can use environment variables to make a more flexible map mount:

[1] Multiple non-concurent users requiring credentials example:
Code: Select all
server-share -fstype=cifs,rw,iocharset=utf8,credentials=${HOME}/cred.secret,uid=${UID} ://server/share


Each user will have to create their own cred.secret file in their own home directory with this kind of content:
Code: Select all
username=altair4
password=altair4password

So if the user altair4 was logged into the system he would pass his credentials at /home/altair4/cred.secret and mount /server/share to /mnt/Samba/server-share with owner set to uid=1000.

[2] Multiple non-concurrent user mounts of their samba server's home directory ( i.e., a samba [homes] share ) example:
Code: Select all
server-Home -fstype=cifs,rw,iocharset=utf8,credentials=${HOME}/cred.secret,uid=${UID} ://server/${USER}

So if the user altair4 was logged into the system he would pass his credentials at /home/altair4/cred.secret and mount /server/altiar4 to /mnt/Samba/server-Home with owner set to uid=1000.
Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.
altair4
Level 16
Level 16
 
Posts: 6269
Joined: Tue Feb 03, 2009 10:27 am

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby michaelzap on Thu Feb 13, 2014 8:39 pm

I've been having trouble with gvfs in Mate 16 x64, and I've never liked that fstab would try to mount my home server shares when my laptop was away from home, so this is a very useful tutorial for me - thanks!

So far I haven't gotten it to work, and I'm wondering what I might test to figure out why.

/home/zap/auto.master:
Code: Select all
/home/zap/mounts /home/zap/auto.sambashares --timeout=60 --ghost
+auto.master


/home/zap/auto.sambashares:
Code: Select all
colmena -fstype=cifs,rw,username=zap,password=mypassword,uid=1000,iocharset=utf8 ://colmena/shares
mp3s -fstype=cifs,rw,uid=1000,iocharset=utf8 ://vicio/mp3s
videos -fstype=cifs,rw,uid=1000,iocharset=utf8 ://vicio/videos
software -fstype=cifs,rw,uid=1000,iocharset=utf8 ://vicio/software


When I restart the autofs service it creates the mounts subdirectory in /home/zap but doesn't mount the shares there. Previously I tried this using the /mnt/samba and it did create the mount points, but they didn't work when I would try to open them (couldn't display contents - it may have been recently deleted). In the end I want to access these mounts in /home/zap/mounts (because I have FTP bookmarks that use this location), but I can create symlinks if I shouldn't mount autofs shares there.

How can I debug this to get it working? I don't see anything related in .xsessionerrors. Thanks!
michaelzap
Level 3
Level 3
 
Posts: 160
Joined: Sat Sep 11, 2010 9:32 pm

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby altair4 on Fri Feb 14, 2014 8:03 am

I've never tried autofs with the map file ( in your case /home/zap/auto.sambashares ) outside of /etc but theoretically it should work. But I'm fairly certain that the automount process will be looking for the auto.master file in /etc/ not in your home directory.

I would edit the existing master file where it is:

/etc/auto.master:
Code: Select all
/home/zap/mounts /home/zap/auto.sambashares --timeout=60 --ghost
+auto.master


As for the map file let's take the first mount as an example:
colmena -fstype=cifs,rw,username=zap,password=mypassword,uid=1000,iocharset=utf8 ://colmena/shares

Make sure the mount itself works by temporarily mounting it to say ... your Public folder by running this command in a terminal:
Code: Select all
sudo mount -t cifs //colmena/shares /home/zap/Public -o rw,username=zap,password=mypassword,uid=1000,iocharset=utf8

Note: To unmount:
Code: Select all
sudo umount /home/zap/Public
Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.
altair4
Level 16
Level 16
 
Posts: 6269
Joined: Tue Feb 03, 2009 10:27 am

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby michaelzap on Fri Feb 14, 2014 12:16 pm

Thanks very much for your help with this.

I actually tried the auto.master file (as well as the auto.sambashares file) in etc also, but that didn't make any difference.

I'm not able to mount the shares normally via cifs in a terminal using either the server name or its ip, so that's the issue.

Code: Select all
zap@bangarang ~ $ sudo mount -t cifs //vicio/mp3s /home/zap/Public -o rw,uid=1000,iocharset=utf8
mount error: could not resolve address for vicio: Unknown error
zap@bangarang ~ $ sudo mount -t cifs //192.168.0.121/mp3s /home/zap/Public -o rw,uid=1000,iocharset=utf8
Password for root@//192.168.0.121/mp3s: <- not sure why it was asking me for that, as this share does not require a password
zap@bangarang ~ $ sudo mount -t cifs //colmena/shares /home/zap/Public -o rw,username=zap,password=mypassword,uid=1000,iocharset=utf8
mount error: could not resolve address for colmena: Unknown error
zap@bangarang ~ $ sudo mount -t cifs //192.168.0.120/shares /home/zap/Public -o rw,username=zap,password=mypassword,uid=1000,iocharset=utf8
Unable to find suitable address.
zap@bangarang ~ $


This almost seems like some sort of firewall blocking the traffic... Any ideas?
michaelzap
Level 3
Level 3
 
Posts: 160
Joined: Sat Sep 11, 2010 9:32 pm

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby altair4 on Fri Feb 14, 2014 12:56 pm

Didn't you say you had this mounting from fstab once? Do you still have how you did that?
sudo mount -t cifs //192.168.0.121/mp3s /home/zap/Public -o rw,uid=1000,iocharset=utf8
Password for root@//192.168.0.121/mp3s: <- not sure why it was asking me for that, as this share does not require a password

Pass it the option guest:
sudo mount -t cifs //192.168.0.121/mp3s /home/zap/Public -o guest,rw,uid=1000,iocharset=utf8

Not being able top access this by ip address is a problem and you're right it looks like either a firewall problem or you are not in the same subnet.

Turn off your own firewall settings if you enabled any:
Code: Select all
sudo ufw disable

Do the same on the server - BTW, is the server a Linux box or a Windows box?

Is your own machine in the same ip range as the server - is your linux box 192.168.0.xxx?
Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.
altair4
Level 16
Level 16
 
Posts: 6269
Joined: Tue Feb 03, 2009 10:27 am

[SOLVED] Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby michaelzap on Fri Feb 14, 2014 1:21 pm

Looks like it's just not a great idea to try to mount these shares directly into your home directory (as far as I can tell). It was creating a mounts directory in my home directory that was owned by root, but then it didn't create the subdirectories for each mounted share. I switched back to doing it the way your tutorial outlines but mounted the shares by ip address and now it works.

/etc/auto.master:
Code: Select all
/mnt/samba /etc/auto.sambashares --timeout=60 --ghost
+auto.master


/etc/auto.sambashares:
Code: Select all
colmena -fstype=cifs,rw,username=zap,password=mypassword,uid=1000,iocharset=utf8 ://192.168.0.140/shares <-- note that I had this ip wrong before, so that also caused confusion
mp3s -fstype=cifs,rw,uid=1000,iocharset=utf8 ://192.168.0.121/mp3s
videos -fstype=cifs,rw,uid=1000,iocharset=utf8 ://192.168.0.121/videos
software -fstype=cifs,rw,uid=1000,iocharset=utf8 ://192.168.0.121/software


Now I just need to create symlinks in my home directory so that I don't need to change my FTP bookmarks and whatnot (though I could do that also).

Just since you asked, colmena is a Debian machine with Samba shares and vicio is a linux-based NAS device.

Thanks for your help and for putting together this tutorial!
michaelzap
Level 3
Level 3
 
Posts: 160
Joined: Sat Sep 11, 2010 9:32 pm

Re: [SOLVED] Re: HowTo: Auto Mounting Samba Shares Using Aut

Postby altair4 on Fri Feb 14, 2014 1:28 pm

michaelzap wrote:Looks like it's just not a great idea to try to mount these shares directly into your home directory (as far as I can tell). It was creating a mounts directory in my home directory that was owned by root, but then it didn't create the subdirectories for each mounted share. I switched back to doing it the way your tutorial outlines but mounted the shares by ip address and now it works.

To be honest I never tried to have the mount points in a home directory. I should probably add that warning to the HowTo. I'd like to figure out why it's doing that though - I would think it would allow you to mount it anywhere.

EDIT: I just did a simple test of putting in my home directory and I'm not experiencing the same issue. By any chance do you have an encrypted home directory?
Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.
altair4
Level 16
Level 16
 
Posts: 6269
Joined: Tue Feb 03, 2009 10:27 am

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby dclement on Tue Feb 18, 2014 9:44 am

Hello,

I'm trying to follow this tutorial to access the Samba shares on my NAS, but I'm struggling to get it to work. I seem to be running into the same error as michaelzap, but unlike him I couldn't solve it.

I can mount a share manually:
Code: Select all
sudo mount -t cifs -o username=daniel,password=<mypassword> //192.168.0.10/public ~/Public

or access it in the file browser under "Network".

Here is the matching entry in auto.sambashares:
Code: Select all
public fstype=cifs,rw,username=daniel,password=<mypassword>,uid=1000,iocharset=utf8 ://192.168.0.10/public

But if I try to browse the mount points under /mnt/Samba, I get e.g. "Cannot display folder contents / cannot find "public" - it may have been erased recently" (do my best to translate from French).

However, the firewall is not running on that PC. What am I doing wrong?

TIA - best regards, Daniel
dclement
Level 3
Level 3
 
Posts: 166
Joined: Thu Apr 19, 2012 9:59 am

Re: HowTo: Auto Mounting Samba Shares Using AutoFS

Postby altair4 on Tue Feb 18, 2014 10:18 am

Please post your master file contents:
Code: Select all
cat /etc/auto.master
Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.
altair4
Level 16
Level 16
 
Posts: 6269
Joined: Tue Feb 03, 2009 10:27 am

Linux Mint is funded by ads and donations.
 
Next

Return to Tutorials

Who is online

Users browsing this forum: No registered users and 5 guests