我刚刚通过 apt-get(apt-got?)获取了适用于我的 Ubuntu 9.10 Linux 系统的最新软件,并且我注意到 samba 包含在更新中。
安装后,我的主目录中的符号链接在作为驱动器安装在我的 Linux 机器上时不再起作用。它们在我进行更新前几秒钟就起作用了。我所有的正常目录都正常工作。在命令行上查看目录列表,所有文件、目录和链接都具有完全相同的权限,但我收到以下错误:
Location is not available
L:\LinkDir is not accessible.
Access is denied.
我查看了论坛,发现 smb.conf 中有这个选项
follow symlinks = yes
wide symlinks = yes
unix extensions = no
我把这些放进去了,但没有效果。有人遇到过这个问题吗?
答案1
Samba 最近出现了一个安全问题(2010 年 2 月 5 日),这是一个据称利用了不安全默认配置的零日漏洞。根据Ubuntu 论坛帖子关于这个话题,“广泛链接”选项现在默认为不。
显然,自从那些先前的指示你发现了。
将其添加到全球的您的部分smb配置文件文件应该可以修复该问题:
follow symlinks = yes
wide links = yes
unix extensions = no
保存后smb配置文件,请确保重新启动 Samba:
sudo /etc/init.d/samba restart
答案2
这也对我有帮助,尽管我没想到会这样。我在 Ubuntu 上有两个 Samba 共享。在这两个共享中我都使用了符号链接,但在一个目录(共享)中符号链接可以正常工作,而在另一个目录(也是共享)中则不能。
我在 Linux 上跟踪链接没有遇到任何问题,但在 Win 上却不行。
我甚至可以使用两个彼此相邻的 puTTy 窗口,一个在我的 /data 目录中,一个在我的 /data2 目录中,并发出相同的命令:ln -s /data3/Mydata。
Mydata 目录会出现在 Win 框中的两个映射驱动器中,但在一种情况下它可以正常工作,但在另一种情况下我会收到“拒绝访问”错误。
“unix extensions = no”起了作用,但我不知道为什么......
答案3
我遇到过同样的问题,但对我来说,将“unix extensions = no”放入 smb.conf 的 [global] 部分确实解决了这个问题。重要的是,您要将其放入 unix extension 标志的全局部分(对所有共享有效),因为在 Samba 知道用户连接到哪个共享之前会对其进行解析。宽链接选项可以进入适用的共享。
对于那些受到这种行为困扰并希望避免将来发生类似事件的人,我只想说:Samba 团队不会阅读发行版的错误跟踪器,但他们有自己的列表:
Samba 团队一直认为只有极少数人会受到此漏洞的影响,只有更多人发声,他们才会改变想法。所以如果你关心,请留言给[电子邮件保护]
谢谢,
阿兰
答案4
注意:已经发布了此答案另一个问题,但当仅发布链接时,我的(非常简短!)回复已转换为对这个初始问题的评论(见上文),并且变得有点不可见。因此,为了可见性,这里再次给出完整的答案:
要允许 Samba 客户端跟随共享路径之外的符号链接,Samba 配置中只需要执行以下操作:
[global]
allow insecure wide links = yes
unix extensions = no
[myShare]
wide links = yes
(当然,除了 Samba 共享定义本身之外)。从理论上讲,这对于 *nix 客户端来说已经足够了。
注意:“跟随符号链接”指令不是必需的,因为它默认为“是”
对于 Windows 客户端,仍缺少 1 个设置来让它们跟踪此类链接。要做到这一点:
- 打开具有管理员权限的 Windows shell
跑步 :
fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
重新启动以重新加载设置
注意:通过编辑 Windows 注册表可以获得相同的结果。请参阅下面的链接
来源: