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:
| Option | Description | Default |
|---|---|---|
| user | Allow any user to mount and unmount | (no) |
| nouser | Disallow non-root mounts | yes |
| group | Allow users belonging to the owning group | (no) |
| owner | Allow 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
Create the file
/etc/systemd/system/mnt-external.mount:sudo vi /etc/systemd/system/mnt-external.mountPopulate 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
| Field | Purpose |
|---|---|
| Description | Brief description of the mount |
| What | Device path or UUID (/dev/disk/by-uuid/...) |
| Where | Mount point directory (/mnt/external) |
| Type | Filesystem type (ntfs, ext4, etc.) |
| Options | Mount options (same as in /etc/fstab) |
| WantedBy | Target to activate the mount on (multi-user.target) |
Warning
The filename mnt-external.mount must exactly match the Where path /mnt/external (slashes → hyphens).
Reload systemd and start the mount:
sudo systemctl daemon-reload sudo systemctl start mnt-external.mountCheck status:
sudo systemctl status mnt-external.mountSample 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/externalTo 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.
Create
/etc/systemd/system/mnt-external.automount:sudo vi /etc/systemd/system/mnt-external.automountAdd:
[Unit] Description=Automount External Data Disk [Automount] Where=/mnt/external [Install] WantedBy=multi-user.targetReload, 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.
Links and References
Watch Video
Watch video content