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
- Check if you're actually root. Run
id -u. If it outputs0, 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, trysudo mount /dev/sdb1 /mnt. If that works, you know the issue is user permissions. - Add the user option to fstab. Edit
/etc/fstabwithsudo nano /etc/fstaband find the line for your device. If it looks like this:
change/dev/sdb1 /mnt/data ext4 defaults 0 2defaultstodefaults,user(orusersif you want any user to mount it). Then runsudo mount -ato test. Now you can mount with plainmount /mnt/data— no sudo needed. - If you're mounting manually every time, skip fstab. Just use
sudo mount /dev/sdb1 /mnt/usband remember to unmount withsudo 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. - 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 -fto see the actual device names, filesystem types, and labels. Match that to your fstab entry. A wrong device name will give youmount: 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. - If you're on a systemd distro, check if the service is masking. Some distros have a service called
systemd-mountthat 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/systemand reload withsystemctl 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
blkidand put that in fstab:
This is more stable and I've seen it fix weird permission issues on some systems.UUID=8a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d /mnt/data ext4 defaults,user,noatime 0 2 - Check if the mount point directory has correct permissions. If
/mnt/datais owned by root with 700 perms, a regular user can't access it even if they can mount. Fix withsudo chown -R $USER:$USER /mnt/dataorsudo 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/exportsand make sureno_root_squashisn't the only option — you might needrw,no_root_squashand 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
nofailoption. That won't fix permission, but it prevents boot hangs if the drive is missing. Add,nofailto 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.