Windows 中 Samba 访问被拒绝

Windows 中 Samba 访问被拒绝

我想访问linux(虚拟盒子中的fedora 25),有两个问题:

  1. 配置匿名访问,但是windows通过samba访问linux仍然需要账号和密码。

  2. 配置帐户访问,windows提示帐户或密码不正确,但通过smbclient验证实际上是正确的。

配置匿名访问。

[global]
        workgroup = WORKGROUP
        security = user
        map to guest = Bad User
        guest account = guest 
        passdb backend = tdbsam
        cups options = raw
        interfaces = enp0s3
        bind interfaces only = true

[myshare]
        comment = fedora samba
        path = /home/myshare/
        writable = yes
        browsable = yes
        read only = no
        public = yes
        available = yes
        guest ok = yes
        valid users = root yangli guest
        read list = root yangli guest 
        write list = root yangli guest
        create mode = 0755
        directory mode = 0755
        allow hosts = 192.168.56.1/24
        only guest = yes

是什么原因?

答案1

对于 Fedora 25,我不熟悉 fedora 版本号,但我使用 RHEL/Centos 7.x 如果您默认启用了 selinux,您可以尝试以 root 身份setenforce 0暂时将 selinux 置于宽松模式,直到下次重新启动,看看这是否允许 samba 访问工作。如果是这样,那么这是一个 selinux 问题,并且在 RHEL/Centos 中,etc/samba/smb.conf.example它解释了允许 samba 共享与设置为强制执行的 selinux 一起工作所需的 samba 相关 selinux 命令。

对于您的 Fedora 版本,我将关闭/etc/samba/smb.conf.example.

作为参考,这里是我smb.conf从旧版本的 samba 中进行的工作,显示了我认为使其正常工作所需的最低限度。如果您对设置过于严格,则可能会阻止成功连接,因此有时最好不要指定通常意味着允许所有连接。

在你的[myshare]取出allow hostsvalid users.一旦桑巴舞正常运行,就可以考虑在必要时添加此类限制措施。

[global]
#       min protocol = SMB1 needed for winxp
        min protocol = SMB1
#       max protocol SMB2 needed to work with win10, unspecified for this older version of samba is smb1.
        max protocol = SMB2 
        security = user
        passdb backend = tdbsam
#       map to guest = never prevents popup option, bad user allows popup in windows
        map to guest = Bad User

[data]
    path = /data
    read only = No
#   guest ok = no
#   create mask = 660
#   directory mask = 770

guest ok = no,并映射到 guest bad 用户,将允许在 Windows 中弹出窗口,让任何人都有机会输入正确的 linux 用户名和密码。映射到来宾永远不会阻止弹出窗口,这意味着 Windows 用户的用户名必须与 Linux 中的有效本地用户相同(根据 security=user)。你可能不需要min/max protocol指定,我在 samba 3.6 版本中需要指定。我不知道您在 fedora 25 中使用的 samba 版本是什么,如果是 samba 3.x,请尝试指定最小/最大协议。

不要忘记smbpasswd -a <username在你的linux系统上做。

答案2

我有一个系统,允许WinXP和Win7以访客身份访问samba。一些可能有帮助的条目是:

[global]
security = user
null passwords = yes
map to guest = Bad Password
guest ok = Yes

我在受信任的局域网上使用开放共享。

相关内容