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