在 CentOS 里“挂载没权限”通常不是你登录用户的问题,而是内核 / 挂载方式 / 文件系统 / SELinux 限制的。下面按最常见原因给你系统梳理一下,并给出对应解决办法。
mount(最常见)mount /dev/sdb1 /mnt
❌ 报错:
mount: only root can do that
✅ 原因
mount 是特权操作,普通用户默认不能执行
✅ 解决
sudo mount /dev/sdb1 /mnt
或切到 root:
su -
/etc/fstab 没加 user 或 users如果你在 /etc/fstab 里写:
/dev/sdb1 /mnt ext4 defaults 0 0
普通用户还是不能挂。
✅ 解决(允许普通用户挂载)
/dev/sdb1 /mnt ext4 defaults,user 0 0
或所有用户:
/dev/sdb1 /mnt ext4 defaults,users 0 0
⚠ 注意:user 挂载后一般也只能该用户卸载
CentOS 挂载 Windows 磁盘常出现:
原因:
✅ 解决(NTFS)
mount -t ntfs-3g /dev/sdb1 /mnt -o uid=1000,gid=1000,umask=022
✅ exFAT
mount -t exfat /dev/sdb1 /mnt -o uid=1000,gid=1000
即使你 root 挂载成功,也可能:
✅ 查看
getenforce
✅ 临时解决
setenforce 0
✅ 永久解决(不推荐直接关)
vi /etc/selinux/config
SELINUX=permissive
✅ 正确做法(推荐)
semanage fcontext -a -t samba_share_t "/mnt(/.*)?"
restorecon -Rv /mnt
ls -ld /mnt
如果是:
drwx------ root root
你当然进不去
✅ 解决
chmod 755 /mnt
chown youruser:youruser /mnt
服务端没开放:
exportfs -v
客户端:
mount -t nfs server:/data /mnt
mount -t cifs //ip/share /mnt -o username=xxx,password=xxx,uid=1000
whoami
mount | grep sdb
ls -ld /mnt
getenforce
dmesg | tail
如果你愿意,直接贴:
我可以精准告诉你哪一步错了。