我有一个挂载点 /mnt/v1 和一个用户 bak(在组 bak 中)。我这样做了:
sudo chown bak:bak /mnt/v1
sudo chmod 775 /mnt/v1
现在我想将一个带有分区 /dev/sdb1 的外部 fat32 驱动器挂载到此目录。我收到消息“只有 root 可以执行此操作”,因此我发现我需要更改 fstab 并添加此行:
/dev/sdb1 /mnt/v1 vfat noauto,user 0 2
但是当我像这样挂载时,我仍然会收到令人讨厌的消息“只有 root 可以执行此操作”:
bak$ mount -t vfat /dev/sdb1 /mnt/v1
但是当我以 root 身份安装时,整个驱动器获得了我不想要的 root 权限。
是否需要采取一些措施才能将新的 fstab 条目读入内核?我该如何实现我的目标?
答案1
当你挂载 vfat 分区时,你可以传递 uid 和 gid选项设置文件系统所属的用户 ID 和组 ID。您还可以设置文件和目录权限掩码。如果文件系统将由多人使用,请考虑创建一个组并将您自己添加为成员。
你的 fstab 应该看起来像这样。
/dev/sdb1 /mnt/v1 vfat noauto,user,uid=blah,gid=blah 0 2
您的挂载命令将如下所示。
mount -t vfat /dev/sdb1 /mnt/v1 -o uid=blah,gid=blah
您可能还想看看安装挂载软件包使得用户可以轻松挂载文件系统。
回答评论中的问题。
1)当我使用 mount 命令时是否也需要 fstab?
如果您希望用户能够在不使用 sudo 的情况下挂载该命令,那么可以。
2)我必须以 root 身份才能执行您给我的挂载命令吗?
您可以从 fstab 中删除 noauto,文件系统将在启动时挂载。或者作为普通用户,他们可以使用以下命令挂载挂载 /mnt/v1。
3)如何使 fstab 中的更改生效?
由于您使用了 noauto,因此不会自动发生任何事情。该条目仅允许用户挂载文件系统。