我在同一系统上运行 Windows 10 和 Fedora Linux 40 KDE Plasma。每个操作系统都安装在不同的物理驱动器上。我还在系统上安装了一个额外的 SSD 驱动器,该驱动器在两个操作系统上都是自动安装的,并且这两个操作系统都对所述第三个驱动器(以下简称“共享驱动器”)具有读写访问权限。
使用双启动系统的想法是主要使用 Linux 来处理几乎所有事情,并在必要时跳转到 Windows(例如(但不限于)运行一些 Windows 独有的 GUI 应用程序)。
共享驱动器是btrfs
文件系统驱动器。其挂载点条目/etc/fstab
如下:
UUID=MY_BTRFS_UUID /MY_MOUNTPOINT btrfs nofail,defaults,compress-force=zstd:3,noatime,lazytime,commit=120,space_cache=v2,nofail 0 0
我注意到以下行为:
我正在 Linux 上使用 GUI 应用程序处理保存在共享驱动器上的特定文件(我正在使用 Blender 处理 .blend 文件)。该文件最初是在我的 Linux 系统上创建的(因此分配给了一个用户帐户)。当我启动 Windows 时,我可以正常编辑在 Linux 上创建的文件并在共享驱动器上保存更改。启动回 Linux 后,我可以通过 GUI 应用程序打开(我想是读取),但从那里我无法再保存(写入)它。 事实上,我只是尝试使用一个简单的文本文件重新创建相同的行为。我在 Windows 上创建了它,回到 Linux 后,我无法使用简单的文本编辑器(如 Kate)保存更改。
通过简单的检查以及我相当基础的知识,问题似乎源于在 Windows 上创建/覆盖的文件被分配给“nobody:users”(我相信它读作“user:group”)。无论在 Linux 上是否可编辑,在给定目录上使用 ls -lh 都会报告所有文件共享相同的权限,只是不同的用户:组组合。可编辑文件被分配给评估形式 $USER:$USER(我不记得明确指定了相同的用户名和组名,但是嘿,也许我指定了,我只是在设置过程中顺其自然)。“nobody”文件的副本(通过在 Dolphin 的 GUI 界面上进行简单的复制粘贴完成)被重新分配给当前 Linux 用户,使该文件可编辑。尝试使用 Kate 保存原始虚拟文本文件(在 Windows 上创建)会要求输入密码,当提供密码时,确实会写入更改,但所有权保持不变(“nobody”)。可以预见的是,再次尝试编辑同一个文件会再次要求 root 权限。
另一件值得一提的事情是,虽然一些 GUI 应用程序提供了提升权限的选项(如 Kate,如上所述),但其他 GUI 应用程序(如 Blender,就我而言)似乎没有提供任何选项来克服这个问题。Blender只是返回“ (路径)不可写”。我可以忍受(尽管并不高兴)在必要时提供密码,但事实并非如此,我需要找到一种解决方法。显然,我不希望每次都必须手动重新分配所有权。
现在,我是一个简单的人,我希望能够登录每个操作系统并无缝处理共享文件/目录。解决这个问题的最佳方法是什么?我认为我不应该特别关心所有权状态,除非它会带来我(很可能)不知道的事情。