请允许我详细说明一下标题。
我有一个~/Documents
名为“Share”(~/Documents/Share
)的文件夹。我在 nautilus explorer 中右键单击该文件夹并单击“本地网络共享”按钮,启用了此文件夹的共享。Allow others to create and delete files in this folder
和Guest 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 的形式保存。