35

I was under the impression that any sort of call to mount requires root privileges.

But recently I was told "You should instead create appropriate entries in /etc/fstab so that the filesystems can be mounted by unprivileged users"... which is counter to my experience using mount.

Anytime I have used mount I have needed to sudo it. (I have only used mount for mounting network drives. Specifically cifs type network drives.)

Does mount always require root privileges? If not:

  • What kind of mount does and what kind of mount doesn't require sudo IN GENERAL?
  • In my specific case I am doing mount -t cifs, how does one go about making this mount not require require sudo?
0

3 Answers 3

24

Mounting a filesystem does not require superuser privileges under certain conditions, the most common being that the entry for the filesystem in /etc/fstab contains a flag that permits unprivileged users to mount it, typically user. To allow unprivileged users to mount a CIFS share (but not automount it), you would add something like the following to /etc/fstab:

//server/share /mount/point cifs noauto,user 0 0

For more information on /etc/fstab and its syntax, Wikipedia has a good article here, and man 8 mount has a good section on mounting as an unprivileged user under the heading "[t]he non-superuser mounts".

11
  • how do you get a cifs network share to automount? (and what is automount?) Sep 16, 2011 at 1:50
  • 5
    You just remove noauto (or specify it explicitly with auto). Automounting means that the share will be mounted with mount -a, and usually will also be mounted on system startup.
    – Chris Down
    Sep 16, 2011 at 1:52
  • how do you see what options are available for a specific filesystem like CIFS for example, how would you get the documentation for CIFS? Sep 16, 2011 at 1:53
  • 1
    @Bernhard - Actually, in most distributions providing automounting for external drives (even those not in /etc/fstab), it's handled by udisks or similar.
    – Chris Down
    Sep 16, 2011 at 9:52
  • 1
    what determines the owner of files after mounting? Sep 17, 2011 at 21:56
14

The mount(8) man page has a section dedicated to this; in short, it comes down to adding the user or users option for that mount in /etc/fstab:

The non-superuser mounts.

Normally, only the superuser can mount filesystems. However, when fstab contains the user option on a line, anybody can mount the corresponding system.

Thus, given a line

 /dev/cdrom  /cd  iso9660  ro,user,noauto,unhide

any user can mount the iso9660 filesystem found on his CDROM using the command

 mount /dev/cdrom

or

 mount /cd

For more details, see fstab(5). Only the user that mounted a filesystem can unmount it again. If any user should be able to unmount, then use users instead of user in the fstab line. The owner option is similar to the user option, with the restriction that the user must be the owner of the special file. This may be useful e.g. for /dev/fd if a login script makes the console user owner of this device. The group option is similar, with the restriction that the user must be member of the group of the special file.

2

re: cifs mounts

Make sure you are entering the gid and uid with numeric values. I've had on issues with specifying these as their name values. This is despite the mount.cifs helper version being 5.1 (mount.cifs -V)

see

uid=arg
       sets the uid that will own all files or directories on the
       mounted filesystem when the server does not provide
       ownership information. It may be specified as either
       a username or a numeric uid. When not specified, the default
       is uid 0. The mount.cifs helper must be at version 1.10
       or higher to support specifying the uid in non-numeric form.
       See the section on FILE AND DIRECTORY OWNERSHIP AND PERMISSIONS 
       below for more information.
//mynas/nasmedia /media/nasmedia cifs noauto,users,_netdev,credentials=/etc/.smbcredentials,iocharset=utf8,uid=1000,gid=1002,file_mode=0774,dir_mode=0775 0 0

worked well for non-root mounting, and allocating the correct uid and gid on the mountpoint.

Not the answer you're looking for? Browse other questions tagged .