Linux 和 Windows 之间共享文件系统权限的正确设置方法

Linux 和 Windows 之间共享文件系统权限的正确设置方法

我有一个可通过 Samba 共享访问的网络驱动器。我想在 Windows 10 和 Ubuntu mate 的共享驱动器上创建、编辑、读取/写入文件。

我注意到,当我从 Linux 创建文件时,我无法从 Windows 编辑它。另外,当我将大量文件从 Windows (NTFS) 同步到共享驱动器 (ext4) 时,我可以查看它们,但无法从 Ubuntu 中编辑它们。我使用的命令是...

sudo rsync -rltzhHvn --info=progress2 "/media/ubuntu-mate/DATA/Personal Stuff" "/media/ubuntu-mate/4TB1/DataShare/Personal-Stuff"

我对 Linux 权限和 Samba 了解一些,所以这是我正在考虑使用的解决方案......

  1. 创建一个没有 root 访问权限的 Ubuntu 用户帐户 (ubuntu-user)。仅在我真正需要的极少数情况下使用 sudo。
  2. 在 Ubuntu 中创建的文件将具有所有者/组,例如 -->ubuntu-user:ubuntu-user
  3. 我将配置 Samba 共享,例如..
force user = ubuntu-user
create mask = 0666
directory mask = 0777
  1. 现在 Windows 应该能够编辑/删除在 Ubuntu 中创建的文件,并且还可以创建可以在 Ubuntu 中编辑/删除的文件。

我的做法正确还是有更好的方法?

例如,如果文件是由某些系统进程或 Ubuntu 中的 root 创建的,那么我将无法通过 Windows 的共享来读取/写入/编辑它,该怎么办?在这种情况下,我知道我可以将 Samba 共享更改为...

force user = root
create mask = 0666
directory mask = 0777

我认为这会起作用,但现在从 Windows 创建的任何文件都不能由 Linux 编辑ubuntu-user。我可以force user = root在 Samba 共享中创建一个具有 root 访问权限的 Linux 用户帐户,这会更容易,但我认为不可取。

干杯。

答案1

这些是我的权限,但我建议创建一个 sambauser 和 sambagroup。强制用户和强制组将负责创建的文件权限。

   path = /path/to/file
   force user = sambauser
   force group = smbagroup
   create mask = 0664
   force create mode = 0664
   directory mask = 0775
   force directory mode = 0775
   public = yes
   writable = yes

注意:我的设置方式是针对专用网络,如果您希望拥有可以共享但不能修改的文件,则权限允许任何人修改文件,我会推荐一个具有更多限制性权限的单独文件夹。

希望这会有所帮助,Jason C.

相关内容