Linux Professional Institute LPIC-1 Exam 101

Devices Linux Filesystems Filesystem Hierarchy Standard

Control Mounting and Unmounting of Filesystems Part 2

In this guide, you’ll learn how to grant non-root users the ability to mount and unmount filesystems on Linux. While root or sudo privileges have traditionally been required, desktop environments and modern distributions often auto-mount removable media such as CD-ROMs, USB flash drives, and external disks under a user’s home directory:

/media/USER/LABEL

For example, if john plugs in a USB drive labeled FlashDrive, it appears at:

/media/john/FlashDrive

Allowing Non-Root Mounts via /etc/fstab

You can configure /etc/fstab to let normal users mount and unmount specific devices without sudo. Modify the mount options field to include one of the following:

OptionDescriptionDefault
userAllow any user to mount and unmount(no)
nouserDisallow non-root mountsyes
groupAllow users belonging to the owning group(no)
ownerAllow the device’s owning user(no)

Example: permitting all users to mount /dev/sdb1 on /mnt/userdrive:

/dev/sdb1  /mnt/userdrive  ext4  defaults,user  0 0

Note

After editing /etc/fstab, you can test the entry without rebooting:

mount /mnt/userdrive
umount /mnt/userdrive

Managing Mounts with systemd

systemd can manage both static mounts and on-demand automounts via unit files in /etc/systemd/system/. Units must be named after the mount point by replacing slashes with hyphens and appending .mount or .automount.

Creating a Mount Unit

  1. Create the file /etc/systemd/system/mnt-external.mount:

    sudo vi /etc/systemd/system/mnt-external.mount
    
  2. Populate it:

    [Unit]
    Description=External data disk
    
    [Mount]
    What=/dev/disk/by-uuid/56C11DCC5D2E1334
    Where=/mnt/external
    Type=ntfs
    Options=defaults
    
    [Install]
    WantedBy=multi-user.target
    
FieldPurpose
DescriptionBrief description of the mount
WhatDevice path or UUID (/dev/disk/by-uuid/...)
WhereMount point directory (/mnt/external)
TypeFilesystem type (ntfs, ext4, etc.)
OptionsMount options (same as in /etc/fstab)
WantedByTarget to activate the mount on (multi-user.target)

Warning

The filename mnt-external.mount must exactly match the Where path /mnt/external (slashes → hyphens).

  1. Reload systemd and start the mount:

    sudo systemctl daemon-reload
    sudo systemctl start mnt-external.mount
    
  2. Check status:

    sudo systemctl status mnt-external.mount
    

    Sample output:

    ● mnt-external.mount — External data disk
         Loaded: loaded (/etc/systemd/system/mnt-external.mount; disabled; preset: enabled)
         Active: active (mounted) since Mon 2019-08-19 22:27:02 -03; 14s ago
          What: /dev/sdb1
          Where: /mnt/external
    
  3. To auto-mount at boot:

    sudo systemctl enable mnt-external.mount
    

Creating an Automount Unit

An automount unit triggers the mount only when the directory is accessed. You’ll need both the .mount and a corresponding .automount file.

  1. Create /etc/systemd/system/mnt-external.automount:

    sudo vi /etc/systemd/system/mnt-external.automount
    
  2. Add:

    [Unit]
    Description=Automount External Data Disk
    
    [Automount]
    Where=/mnt/external
    
    [Install]
    WantedBy=multi-user.target
    
  3. Reload, start, and enable:

    sudo systemctl daemon-reload
    sudo systemctl start mnt-external.automount
    sudo systemctl enable mnt-external.automount
    

Now, whenever you ls /mnt/external, systemd will mount the disk automatically.


Watch Video

Watch video content

Previous
Control Mounting and Unmounting of Filesystems Part 1 Mount on demand