在 Linux 里,mount 的权限通常可以从三个层面来理解和设置:
默认只有 root 可以挂载:
mount /dev/sdb1 /mnt
普通用户直接执行会报错:
mount: only root can do that
在 /etc/fstab 中加 user 或 users 选项:
/dev/sdb1 /mnt/data ext4 user,defaults 0 2
user:只允许挂载它的用户卸载users:任何用户可挂可卸noauto:开机不自动挂载然后普通用户即可:
mount /mnt/data
visudo
添加:
username ALL=(root) /bin/mount, /bin/umount
mount 本身不影响文件权限,真正起作用的是:
chmod 755 /mnt/data
chown user:group /mnt/data
需要用 uid/gid:
mount -o uid=1000,gid=1000 /dev/sdb1 /mnt/usb
或 fstab:
/dev/sdb1 /mnt/usb vfat uid=1000,gid=1000,umask=022 0 0
常用 mount 权限相关选项:
| 选项 | 说明 |
|---|---|
ro |
只读 |
rw |
读写(默认) |
noexec |
禁止执行程序 |
nosuid |
忽略 setuid |
nodev |
禁用设备文件 |
exec |
允许执行 |
示例:
mount -o ro,noexec,nosuid /dev/sdb1 /mnt
fstab 示例:
/dev/sdb1 /mnt/data ext4 defaults,noexec,nosuid 0 2
UUID=xxxx /mnt/usb vfat user,uid=1000,umask=022 0 0
/dev/sdb1 /data ext4 defaults,nosuid,nodev,noexec 0 2
什么都不加即可(默认)
如果你能说一下:
我可以给你一条精准命令或 fstab 配置。