Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

Via Gnome Nautilus I can easily mount Samba shares from my Ubuntu Server. However, these "mounts" are kinda of fake. Many applications I run do not recognize that Gnome has mounted these server folders and therefore cannot open files off my server.

In the past I created an /etc/fstab entry and mounted them globally, the /mnt folder, but this isn't going to work as other people share my Ubuntu laptop.

What's the easiest way to create a "real" samba mount in my (and other people's) home directory? It's fine if its a command or a GUI application that can run when I log in. These server folders don't have to be mounted all the time.

share|improve this question
    
Why would you want to use Samba to access files on your Linux server? Samba is meant for accessing Windows network shares and services. –  kynan Jul 20 '12 at 12:24
    
Because NFS is a pain to set up on the server, and even harder to get working from Windows clients. Ditto with sshfs and others. –  HDave Jul 20 '12 at 14:00
    
sshfs requires no setup whatsoever on the server other than sshd running which you'll need anyway. So even if you have samba running to serve Windows clients I wouldn't use it for Linux clients. Incidentally dokan is a brilliant sshfs client for Windows which is easy to set up. –  kynan Jul 20 '12 at 18:05
    
I've set up sshfs on Windows...it works well. But why tweak a bunch of windows/mac machines when samba server works so well and is so easy to setup? –  HDave Jul 20 '12 at 18:16
    
Samba is certainly a sensible option for serving files to Windows/Mac clients. I just don't think it's necessary when serving only Linux clients, which is how I read your question. –  kynan Jul 20 '12 at 21:11
add comment

4 Answers 4

up vote 18 down vote accepted

Suppose you have a directory called mounts in your home directory in which you want various Samba shares to be mounted. Suppose further that you are specifically interested in mounting a share called sharename from a remote machine called hostname (this could also be an IP address), and on that remote machine your username is username. First, create the mount point:

mkdir ~/mounts/sharename

Then mount the share:

sudo mount.cifs //hostname/sharename ~/mounts/sharename -o user=username

In Ubuntu 12.04 LTS and earlier, if you don't have the mount.cifs command, you can either install the cifs-utils Install cifs-utils package, or use smbmount instead (which is, in turn, provided by the smbfs Install smbfs package).

sudo smbmount //hostname/sharename ~/mounts/sharename -o user=username

(smbmount is not available in Ubuntu 12.10 or higher, at least so far, but you can use mount.cifs instead. Thanks to HDave for pointing this out.)

You may be prompted for your password on the local machine, to run the command as root. Then you'll be prompted for your password on the remote machine, to log in so you can mount the share.

share|improve this answer
    
Had to do a sudo apt-get install smbfs first though. –  HDave Dec 2 '11 at 16:03
    
Also needed sudo apt-get install smbfs first. Then the mount worked correctly on my end. Note that I replaced hostname with the IP address of the server. (The server is a WinXP box) Not sure why the computer name of the XP box did not work for me. THANKS GUYS! –  Logi Jan 3 '12 at 0:25
    
This is now broken in 12.10. Find the bug and workaround here: bugs.launchpad.net/ubuntu/+source/cifs-utils/+bug/1095294 –  HDave Jan 11 '13 at 18:42
    
I'm getting: mount error(12): Cannot allocate memory (They say I need registry hack, but I have no access to the Windows side...) –  Calmarius Apr 5 '13 at 11:10
    
@HDave Thanks, I've updated my answer. Since I used smbmount originally (and not mount -t smbfs), I've used mount.cifs now (rather than mount -t cifs) in keeping my my original style. mount -t cifs will of course work though (as will mount -t smbfs on 12.04 and earlier). –  Eliah Kagan Apr 5 '13 at 18:06
show 1 more comment

Not sure if you are still looking for something easy, I just found it:

All the shares you have opened are mounted automatically in your home folder under /home/.gvfs.

Any application can recognize and access the shares as if they were normal folders, as long as you point the application to the files or folders you want in /home/.gvfs

share|improve this answer
add comment
  • Open your file manager, i.e. click the icon for Home Folder
  • Observe up at the top of the screen is the Menu for the File Manager (as opposed to at the top of its window);
  • Click FileConnect to Server...; a window should open titled Connect to Server
  • Click into its drop-down box titled Type; choose Windows share (i.e. change from the default of Public FTP)
  • Enter the Server (the name if it can be resolved by DNS or its IP address
  • Enter the Share (i.e the items you'd otherwise see in a windows share as the Share component of '\\Server\Share')
  • Enter into Folder the name of any particular directory on the share that you'd like the mount to position at
  • Enter any/optional User Details
  • The Share should Mount and appear in the File Manager window on the left list under Network
  • You might then like to create a bookmark for that mount. Again, from the File Manager menu at the top of the screen: Bookmarks → Add bookmark (after first clicking on/highlighting the share you have just mounted).
share|improve this answer
1  
Doing this via Nautilus is what I meant by the mount being a "fake" mount. This "mount" is only recognized by a small handful of Gnome applications. Try going to a command line and doing an "ls", or try opening up a file on the mount from VLC or some other apps that don't use the Gnome file dialog and you will find your mounts are not there. –  HDave Feb 3 '12 at 13:54
2  
@HDave ls worked for me. cd ~/.gvfs then ls and there should be the mount. You can symlink to wherever you want from there. –  Limited Atonement Apr 10 '12 at 17:34
    
This is correct, but they won't be there when you first log in. You have to browse to them in Nautilus first, which is awkward. –  HDave Dec 17 '12 at 13:46
add comment

Why would you want to use Samba to access files on your Linux server? Samba is meant for accessing Windows network shares and services.

Use sshfs instead, there is no setup necessary at all and you get "proper" mount points that are recognized by any application:

sudo apt-get install sshfs

Mount the remote filesystem with

sshfs user@host:/path /local/mount/point

and unmount with

fusermount -u /local/mount/point
share|improve this answer
    
Because you have other Windows clients on your LAN. And yes, they can run sshfs too, but Samba works great and is just easier all around. –  HDave Dec 17 '12 at 13:47
    
Fair enough, that doesn't become clear from your question though. Also, nothing stops you from accessing your Linux server via SSHFS from Linux and via Samba from Windows/Mac. You can even access the same share in multiple ways. –  kynan Dec 17 '12 at 18:00
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.