无法在 Samba 共享中本地编辑文件,但 Windows 客户端可以吗?(Ubuntu 18.10)

无法在 Samba 共享中本地编辑文件,但 Windows 客户端可以吗?(Ubuntu 18.10)

请允许我详细说明一下标题。

我有一个~/Documents名为“Share”(~/Documents/Share)的文件夹。我在 nautilus explorer 中右键单击该文件夹并单击“本地网络共享”按钮,启用了此文件夹的共享。Allow others to create and delete files in this folderGuest access选项已启用。

我的两台 Windows 机器可以正常读取/写入此文件夹。但是,当 Windows 机器在共享文件夹中创建文件/文件夹时,我无法在 Linux 主机上本地编辑它们。

以下是本地共享文件夹的屏幕截图~/Documents/Share截屏

同样有趣的是,在本地 Linux 主机上创建的任何文件在 Windows 端都是只读的。我在文件夹mkdir CreatedByLinux内运行了该命令Share,当我尝试向文件夹添加新文件时,Windows 上发生了以下情况CreatedByLinux截屏

要旨:

在共享文件夹内~/Documents/Shared

  • windows创建的文件无法本地修改
  • 在windows上,linux创建的文件不能被修改

我希望能够允许本地 Linux 主机和所有客户端对该Shared文件夹拥有完全读/写权限,包括将这些权限自动应用于任何新创建的文件/文件夹。我该怎么做?

技术信息 :

Linux 主机:Ubuntu 18.10

答案1

您创建了一个可供访客访问的 Samba 用户共享。当 Windows 上的访客用户访问该共享时,将调用 /etc/samba/smb.conf 中的一行: map to guest = Bad User

“坏用户”是指 Windows 传递的用户名和密码未包含在 Samba 密码数据库中的用户。来宾用户不会出现在 Samba 密码数据库中,因此它将被“映射”到 Samba 中的默认来宾用户,即用户“nobody”。

解决此问题的最简单方法是在 /etc/samba/smb.conf 中添加一行(就在该workgroup = WORKGROUP行下方),强制来宾用户在这些共享中看起来像您:

force user = binarybyte

然后重新启动smbd:

sudo service smbd restart

现在,Windows 来宾用户将出现在您的 Samba 共享中。Windows 添加的任何新文件或文件夹都将以所有者 = binarybyte 而不是 nobody 的形式保存。

相关内容