Linux 'Permission denied' on mount: fix it fast

Quick fix for 'permission denied' when mounting drives on Linux. Covers user error, fstab mistakes, and the occasional weird USB issue.

Quick answer

If you're getting mount: permission denied on a normal user account, you're probably missing the user or users option in fstab. Add it, or just use sudo mount — but that's a band-aid, not a fix.

Let me guess what you did. You plugged in a USB stick, tried to mount it, and got that ugly mount: /media/usb: permission denied. Or you edited /etc/fstab to auto-mount a secondary drive and now it won't mount at boot. Either way, the kernel is telling you that the user doesn't have the right to perform the mount operation. That's not a hardware problem — it's a policy problem. On Linux, mounting filesystems is a privileged operation by default. Back in the day, only root could mount anything. Then they added the user option so regular folks could mount their own floppies and CDs without calling the sysadmin every time. That's still how it works today.

In my experience fixing this for clients, about 80% of the time it's a missing user option in fstab, 15% is a typo in the device name, and 5% is some weird USB quirk where the device isn't fully ready. The fix is almost always the same.

Numbered fix steps

  1. Check if you're actually root. Run id -u. If it outputs 0, you're root, and you shouldn't be getting permission denied unless the filesystem is corrupt or the device is busy. If you're not root, try sudo mount /dev/sdb1 /mnt. If that works, you know the issue is user permissions.
  2. Add the user option to fstab. Edit /etc/fstab with sudo nano /etc/fstab and find the line for your device. If it looks like this:
    /dev/sdb1 /mnt/data ext4 defaults 0 2
    change defaults to defaults,user (or users if you want any user to mount it). Then run sudo mount -a to test. Now you can mount with plain mount /mnt/data — no sudo needed.
  3. If you're mounting manually every time, skip fstab. Just use sudo mount /dev/sdb1 /mnt/usb and remember to unmount with sudo umount /mnt/usb. It's not elegant, but it works. I've had clients who never touch fstab and just use sudo. As long as you remember the password, you're fine.
  4. For USB drives, check the device path. Sometimes the kernel assigns a different device name than you expect. If you have multiple USB drives, /dev/sdb might actually be your external hard drive, not the stick. Run lsblk -f to see the actual device names, filesystem types, and labels. Match that to your fstab entry. A wrong device name will give you mount: special device /dev/sdb1 does not exist, but I've seen it show permission denied when the device exists but isn't readable by the user.
  5. If you're on a systemd distro, check if the service is masking. Some distros have a service called systemd-mount that handles automounting. If you've got a custom mount unit that conflicts, you might get permission denied. Unlikely, but I once spent an hour on a client's server where an old systemd mount unit was fighting with fstab. Remove the unit file from /etc/systemd/system and reload with systemctl daemon-reload.

Alternative fixes

If the main fix doesn't work, try these in order:

  • Use the UUID instead of /dev/sdXn. Device names can change between reboots. Find the UUID with blkid and put that in fstab:
    UUID=8a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d /mnt/data ext4 defaults,user,noatime 0 2
    This is more stable and I've seen it fix weird permission issues on some systems.
  • Check if the mount point directory has correct permissions. If /mnt/data is owned by root with 700 perms, a regular user can't access it even if they can mount. Fix with sudo chown -R $USER:$USER /mnt/data or sudo chmod 755 /mnt/data. That's not the mount permission error, but it's the next error you'll hit.
  • For network shares (NFS or Samba), it's a different beast. If you're mounting an NFS share and getting permission denied, it's probably an export option on the server side. Check /etc/exports and make sure no_root_squash isn't the only option — you might need rw,no_root_squash and then remount on the client. For Samba, it's usually a credentials issue, not a mount permission issue.
  • If you're on a laptop and the drive is internal but not mounting at boot, try the nofail option. That won't fix permission, but it prevents boot hangs if the drive is missing. Add ,nofail to the fstab options so a bad mount doesn't push you to emergency mode.

Prevention tip

The best way to avoid this is to set up fstab correctly the first time. Always use UUIDs, add the user option if you want non-root users to mount, and test with mount -a before rebooting. Also, if you're using an external drive, consider using a tool like udisksctl which handles permissions automatically — just plug in, and it mounts under /media/yourusername. That's what modern desktop environments use, and it's why you rarely see this error on Ubuntu with a GUI. For servers, you'll still be doing it the manual way, but now you know the trick.

One last thing: if you're running an older kernel (pre-2.6.20) or a distro that predates systemd, the user option might be called user or users — check your distro's mount man page. But honestly, if you're on something that old, you've got bigger problems than a permission error.

Related Errors in Linux & Unix
java.lang.NoClassDefFoundError: Invalid class name Invalid class name error in Linux – fix for Java apps AVC denial SELinux Denied Operation: Fix the AVC Denial Fast bash: sudo: command not found Fix 'bash: command not found' for sudo on Linux E: The repository '...' does not have a Release file. Apt Update Says Repository Does Not Have Release File 404 Fix

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.