Ubuntu VM 中的 samba 共享因“强制用户”而失败

Ubuntu VM 中的 samba 共享因“强制用户”而失败

我有两个 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”的原始项目。”(我没有 Windows 框可供测试)。

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

任何关于如何着手解决这个问题的帮助都将不胜感激。显然,这与“强制用户”和“强制组”有关……但除此之外,我不知道该去哪里找。

答案1

我偶然发现ServerFault 上的这个答案这给了我线索,我需要将“root”添加到有效用户列表中。

之前不起作用的两个共享现在可以正常工作了。我在“有效用户”旁边分别添加了“www-data”和“root”:

[sites]
path = /home/username/sites
available = yes
valid users = username,www-data
read only = no
browseable = yes
public = yes
writable = yes
force user = www-data
force group = www-data
create mask = 0644
directory mask = 0755
hide dot files = no
follow symlinks = no
;wide links = no

[etc]
path = /etc
available = yes
valid users = username,root
#guest ok = yes
#guest only = yes
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

无论如何。这个答案适用于其他可能遇到同样问题的人。(不,我不知道为什么用过的可以工作,但升级时崩溃)

相关内容