我有两个 ubuntu VM(在 VirtualBox 中运行的服务器,作为开发机器)。较旧的盒子(ubuntu 12.04 LTS)运行 samba 很好,所有共享都运行良好。在制作新机器时,我将共享信息(但不是整个配置文件)复制到一个新机器(ubuntu 14.04 LTS),但许多共享都不起作用。
此共享适用于新旧版本:
[username]
path = /home/username
available = yes
valid users = username
read only = no
browseable = yes
public = yes
writable = yes
force user = username
force group = username
create mask = 0644
directory mask = 0755
hide dot files = no
follow symlinks = no
此共享在较新的 ubuntu 14.04 LTS 上失败(与上面相同,但不同的“强制用户/组”:
[etc]
path = /etc
available = yes
valid users = username
read only = no
browseable = yes
public = yes
writable = yes
force user = root
force group = root
create mask = 0644
directory mask = 0755
hide dot files = no
follow symlinks = no
我还有其他共享,我以类似的方式“强制用户 = www-data”,但也失败了。
当我尝试连接时(从 osx)看到的是:“操作无法完成,因为找不到“etc”的原始项目。” (我没有用于测试的窗口框)。
PS: smb.conf 基本上是“香草”,否则:我没有在共享本身之外进行任何编辑。
我快速查看了日志,唯一似乎被记录的是在 log.workstation 中:
[2014/07/27 09:02:06.173271, 0] ../source3/param/loadparm.c:4094(check_usershare_stat)
check_usershare_stat: file /var/lib/samba/usershares/ owned by uid 0 is not a regular file
如果您能帮助解决从哪里开始解决这个问题,我们将不胜感激。显然,它与“强制用户”和“强制组”有关……但除此之外我不知道去哪里找。
我在 ServerFault 上偶然发现了这个答案,它给了我需要将“root”添加到有效用户列表的线索。
以前不起作用的两股现在起作用了。我在“有效用户”旁边分别添加了“www-data”和“root”:
无论如何。这个答案适用于可能遇到同样问题的任何其他人。(不,我不知道为什么它曾经有效,但在升级时中断了)