在 Debian(以及大多数 Linux 发行版)里,“mount 权限”通常可以从 哪些用户能挂载、能挂载什么设备、挂载后有哪些访问限制 这几个层面来理解。下面按常见场景说明。
mount /dev/sdb1 /mnt/usb
普通用户默认不能直接 mount,除非满足下面条件之一。
sudo 授权(推荐服务器)编辑 sudoers:
visudo
添加:
username ALL=(root) /bin/mount, /bin/umount
然后用户可用:
sudo mount /dev/sdb1 /mnt/usb
在 /etc/fstab 中:
/dev/sdb1 /mnt/usb ext4 user,noauto 0 0
说明:
user:允许普通用户挂载noauto:开机不自动挂载mount /mnt/usb
⚠ 注意:
user 挂载时默认会带 nosuid,nodev(安全限制)
udisksctl mount -b /dev/sdb1
文件示例(允许 wheel 组挂载):
/etc/polkit-1/rules.d/10-udisks.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.udisks2.filesystem-mount" &&
subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
});
mount 后权限由 文件系统本身权限 决定:
chown -R user:user /mnt/usb
chmod 755 /mnt/usb
用 mount 选项指定:
mount -o uid=1000,gid=1000,umask=022 /dev/sdb1 /mnt/usb
或 fstab:
/dev/sdb1 /mnt/usb ntfs uid=1000,gid=1000,umask=022 0 0
只允许特定文件系统:
/dev/sdb1 /mnt/usb vfat user,noauto,nodev,nosuid,noexec 0 0
说明:
nodev:忽略设备文件nosuid:忽略 suidnoexec:不能执行程序mount | grep sdb1
cat /proc/mounts
| 需求 | 做法 |
|---|---|
| 只允许 root 挂载 | 默认即可 |
| 普通用户挂载 U 盘 | udisks2 / fstab user |
| 开机自动挂载 | fstab 去掉 noauto |
| 限制普通用户写 | chmod / ntfs umask |
| 防提权 | nodev,nosuid,noexec |
如果你能说明:
我可以给你精确的配置示例。