SAMBA 4.1.6 创建公共共享

SAMBA 4.1.6 创建公共共享

我刚刚将 Ubuntu 服务器升级到 14.04,这使 samba 升级到 4.1.6。我的公共共享(本地家庭网络,因此不必担心安全性,家人可以简单匿名地访问文件)已停止工作,即现在需要输入用户名和密码。

当我运行 testparm 时我得到:

Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[share]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
        workgroup = HOHWORKGROUP
        server string = firewig
        interfaces = eth1, 127.0.0.0/8, 192.168.10.0/24
        map to guest = Bad User
        obey pam restrictions = Yes
        pam password change = Yes
        passwd program = /usr/bin/passwd %u
        passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
        unix password sync = Yes
        syslog = 0
        log file = /var/log/samba/log.%m
        max log size = 1000
        name resolve order = lmhosts, wins, bcast, host
        dns proxy = No
        usershare allow guests = Yes
        panic action = /usr/share/samba/panic-action %d
        idmap config * : backend = tdb
        valid users = nobody

[share]
        comment = share
        path = /srv/samba/share/
        force user = nobody
        force group = nogroup
        read only = No
        create mask = 0777
        force create mode = 0777
        directory mask = 0777
        force directory mode = 0777
        guest ok = Yes

我似乎无法让我的 Windows (W7) 计算机匿名访问共享。不确定我的配置出了什么问题。

答案1

您必须谨慎选择。

valid users=nobody例如,并不意味着nobody允许用户登录。这意味着没有其他用户 nobody可以登录。

由于您显然可以允许访客访问,因此只需将其valid users=nobody从全局部分中删除即可。

此外,虽然您已正确设置map to guest = bad user,但您还必须检查guest系统中哪个用户担任 的角色。显然,您只是假设它是 ,nobody但事实并非如此。如果您不确定,您可以使用 手动指定它guest account = nobody。不用说,nobody必须存在于您的系统中!

接下来,您需要确保共享具有相应的 POSIX 权限nobody。例如,如果您的文件权限允许nobody读取共享中的文件但不允许修改它们,则writeable中的选项smb.conf将不会覆盖该权限。

现在我们进入 smb.conf 的共享部分,我们可以让它变得简单得多。如果您希望将所有操作映射到来宾帐户,则无需使用force userand force group。只需使用参数guest only = yes即可。与guest ok = yes此相结合,所有连接都将映射到正确的来宾帐户,在我们的例子中是nobody

结果(获得完全访客访问权限):

# chmod -R a+rwX /srv/samba/share

/etc/samba/smb.conf
-------------------
[global]
  guest account = nobody
  map to guest = bad user

[share]
  path = /srv/samba/share
  writeable = yes
  guest ok = yes
  guest only = yes

答案2

您能告诉我们您使用的是哪个内核版本吗?

当与最新的内核版本一起使用时,Samba 会出现问题,因为内核需要加密密码或存在其他问题。

我有一台 Ubuntu 14.04.1,我将 Samba 从 4.1 降级到 3.6.3-2ubuntu2,因为升级到 Samba 4.1 后无法正常工作。在这台机器上,如果我使用内核为 3.13 的 Samba 3.6,则无法正常工作,但如果我使用内核 3.2,则可以正常工作。

尝试将您的 grub 或 lilo 更改为使用较旧的内核进行启动,然后告诉我们是否有效。

答案3

为了实现匿名访问,创建伪造的 IPC$ 共享可能会有所帮助:

[IPC$]
    guest ok = yes
    read only = yes
    path = /etc/samba/fakeIPC
    valid users = @group-of-home-users, nobody
#or
#    valid users = nobody

这帮我解决了一些问题。我不记得我在哪里读过这个。

相关内容