在 Linux 中,mount 的权限可以从多个层面来设置,常见包括:
下面按常见场景说明。
mount /dev/sdb1 /mnt
普通用户执行会报错:
mount: only root can do that
在 /etc/fstab 中加 user 或 users:
/dev/sdb1 /mnt/usb ext4 user,defaults 0 0
user:第一个挂载的用户可卸载users:任何用户都可挂载/卸载示例:
/dev/sdb1 /mnt/usb vfat users,umask=000 0 0
然后普通用户:
mount /mnt/usb
mount -o ro /dev/sdb1 /mnt
mount -o rw /dev/sdb1 /mnt
/dev/sdb1 /mnt ext4 ro 0 0
mount 本身不决定文件权限,文件系统权限才决定。
例如:
chmod 755 /mnt
chown user:user /mnt
对于 vfat / ntfs(无 Linux 权限):
mount -o uid=1000,gid=1000,umask=022 /dev/sdb1 /mnt
| 选项 | 作用 |
|---|---|
noexec |
禁止执行程序 |
nosuid |
忽略 suid/sgid |
nodev |
禁止设备文件 |
ro |
只读 |
rw |
读写 |
示例(U 盘推荐):
mount -o noexec,nosuid,nodev /dev/sdb1 /mnt
fstab:
/dev/sdb1 /mnt vfat noexec,nosuid,nodev,users 0 0
只允许某用户 mount:
visudo
user1 ALL=(root) /bin/mount /mnt/*
user1 ALL=(root) /bin/umount /mnt/*
/dev/sdb1 /mnt/usb vfat users,noexec,nosuid,nodev,umask=022 0 0
mount -o ro /dev/sdc1 /data
# 不加 user / users 即可
如果你能说明:
我可以直接给你一份可用的 mount 命令或 fstab 配置。