Ubuntu – How to mount a partition from a remote computer without sudo rights

autofsfstabmountpermissions

I want that users of my group who don't have sudo rights can mount a partition that is on a remote computer. Imagine a user has an account on several computers but a big chunk of data is lying on the hdd of a particular computer.

Is there a way that he can mount this partition on his current computer? Also the user should not be given any sudo rights.

Can I make an entry in /etc/fstab that automatically mounts the remote partition in case a specific user logs in to the computer?

Best Answer

The easiest would be to use an NFS Share (on the "server" machine) and the automounter (autofs) on the "clients".

I assume that NFS is installed on server and client according to the first comment from Dorian.

Say, the partition to share is on /mydata, add an entry to the file /etc/exports on your server:

/mydata     *(rw,sync,no_subtree_check)

(options depend on your requirements). After calling sudo exportfs -a the partition should be exported (test with showmount -e). Same should be true after each restart of the server.

On each client, install autofs:

sudo apt-get install autofs

Edit the file /etc/auto.master to remove the comment sign from the line for /net:

#
# Sample auto.master file
# This is a 'master' automounter map and it has the following format:
# mount-point [map-type[,format]:]map [options]
# For details of the format look at auto.master(5).
#
#/misc  /etc/auto.misc
#
# NOTE: mounts done from a hosts map will be mounted with the
#   "nosuid" and "nodev" options unless the "suid" and "dev"
#   options are explicitly given.
#
/net    -hosts

After restarting the autofs service (sudo service autofs restart), you should be able to access the exported filesystem(s) via

/net/<servername_or_ip>/<exportname>

Eg., if your server's name is "myserver" and the exported filesystem is "/mydata", you could enter

ls /net/myserver/mydata

to see the contents of the directory.

There are a few advantages over having a static entry in /etc/fstab:

  • The NFS share is only mounted when accessed, and will be unmounted after some time of inactivity. This saves a lot of ressources and network bandwidth.
  • If you add a second share on your server (say "/myotherdata"), you do not have to add any entry on the client. Just access the path /net/myserver/myotherdata
  • If you add a second server with another share (say "/moredata" on "secondserver"), the path will be /net/secondserver/moredata without any action on the client
  • You can use the same path (/net/...) on each client, even on the server itself, if you installed and configured autofs on the server.

If you do not want to always enter /net/...., just add a link in e.g. your home directory:

ln -s /net/myserver/mydata .

Caveat:

NFS matches users/groups via the UID/GID. So the "same" user has to have the same UID on all computers, which also holds true for the groups (GID). Otherwise, access rights are mangled/corrupted. There is no problem if you have a centralized user management.