我正在尝试设置 Samba 共享,我可以从 Windows 中看到该共享,但无法访问它

我正在尝试设置 Samba 共享,我可以从 Windows 中看到该共享,但无法访问它

我正在尝试设置从 Ubuntu 到 Windows 10 的共享。我已按照本教程在这里。我不明白为什么该教程说要创建“主页”部分,smb.conf因为它什么都不做。

无论如何,现在我有这个:

[A]
 comment = public anonymous access
 path = /media/crooklar/347A1DC37A1D8332/
 directory mode = 0777
 directory mask = 0771
 browsable =yes
 read only = no
 writable = yes
 guest ok = yes

347A1DC37A1D8332是我机器上的一个独立驱动器,我可能称之为 D 盘。我有 3 个这样的驱动器,不在 RAID 等中。

在 Windows 端,我可以看到我的机器,也可以看到调用的共享,a但我无法访问它。

我做错了什么或者我需要做什么?

PS 我可以问多少个问题而不会惹人厌烦?我正在尝试强迫自己使用 Linux,而不是默认使用 Windows。有没有可以让我直接和别人交流的 discord?

答案1

将您的共享定义更改为:

[A] 
comment = public anonymous access
path = /media/crooklar/347A1DC37A1D8332/
read only = no
guest ok = yes
force user = crooklar

然后重新启动smbd:

sudo service smbd restart

原因:Linux 创建 /media/$USER(本例中为 /media/crooklar)的方式使得只有 crooklar 可以遍历它以查看其后面的内容。来宾用户不是 crooklar,因此无论 347A1DC37A1D8332 上的权限如何,samba 来宾都无法获得访问权限。

force user = crooklar将强制来宾用户看起来像 crooklar(至少对于此共享),以便他可以通过并到达 347A1DC37A1D8332 目录,其权限在该目录生效。

答案2

猜测是 Samba 用户可能缺少该目录的权限。作为测试,请尝试共享一个全局可读的目录(/usr例如)。

常规解决方法是将 Windows 访问权限“映射”给好用户。例如,这里是一个具有单独专用用户的示例。另一个选项是简单地使用 Linux 用户名和密码登录:https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server

如果我理解你的上述评论是正确的,你可能还想将旧磁盘装入/etc/fstab- 你可以在那里设置用户和组其他例子所有选项),让每个人都能读写它们,设置nofail为允许在没有它们的情况下启动,...

相关内容