在 CentOS 中遇到 mount 权限不足,通常不是“文件权限”问题,而是 Linux 挂载机制和用户权限模型 导致的。下面按常见原因逐一说明。
mount /dev/sdb1 /mnt/data
报错:
mount: only root can do that
✅ 原因
mount 是特权操作root 或具有 CAP_SYS_ADMIN 权限的进程才能挂载✅ 解决
sudo mount /dev/sdb1 /mnt/data
或切换到 root:
su -
/dev/sdb1 /mnt/data ext4 defaults 0 0
普通用户执行:
mount /mnt/data
报错权限不足
✅ 解决:加 user 或 users
/dev/sdb1 /mnt/data ext4 defaults,user 0 0
说明:
user:允许特定用户挂载/卸载users:允许多个用户挂载/卸载CentOS 默认开启 SELinux
✅ 检查:
getenforce
如果是 Enforcing,可能阻止:
✅ 查看拒绝日志:
ausearch -m avc -ts recent
✅ 临时解决(不推荐长期):
setenforce 0
✅ 正确做法:
mkdir /mnt/data
chmod 555 /mnt/data
即使 mount 成功,也可能“看起来权限不足”
✅ 检查:
ls -ld /mnt/data
✅ 修复:
chmod 755 /mnt/data
mount -t ntfs /dev/sdb1 /mnt/data
报错权限或不支持
✅ 安装:
yum install -y ntfs-3g
例如挂载到 /home/user/data
✅ 建议:
/mnt/* 或 /media/*.mount unit 文件| 原因 | 解决方法 |
|---|---|
| 非 root | sudo mount |
| fstab 无 user | 加 user/users |
| SELinux | 查 ausearch |
| 目录权限 | chmod 755 |
| 文件系统不支持 | 安装 ntfs-3g |
| systemd 限制 | 用标准目录 |
如果你能贴出:
mount 命令我可以直接帮你定位是哪一种原因。