![Linux 和 Windows 之间共享文件系统权限的正确设置方法](https://linux22.com/image/188418/Linux%20%E5%92%8C%20Windows%20%E4%B9%8B%E9%97%B4%E5%85%B1%E4%BA%AB%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%9D%83%E9%99%90%E7%9A%84%E6%AD%A3%E7%A1%AE%E8%AE%BE%E7%BD%AE%E6%96%B9%E6%B3%95.png)
我有一个可通过 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 了解一些,所以这是我正在考虑使用的解决方案......
- 创建一个没有 root 访问权限的 Ubuntu 用户帐户 (ubuntu-user)。仅在我真正需要的极少数情况下使用 sudo。
- 在 Ubuntu 中创建的文件将具有所有者/组,例如 -->
ubuntu-user:ubuntu-user
- 我将配置 Samba 共享,例如..
force user = ubuntu-user create mask = 0666 directory mask = 0777
- 现在 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.