为什么我无法通过这种简单的配置访问我的 Samba 共享?(CentOS 6)

为什么我无法通过这种简单的配置访问我的 Samba 共享?(CentOS 6)

在新安装的 CentOS 6 系统上,我从另一个系统复制了以下简单的 smb.conf,该系统运行正常:

workgroup = MYDOMAIN
browseable = yes
[homes]
guest ok = no
read only = no
[tmp]
path = /tmp
read only = no
guest ok = yes
[backups]
path = /backups
read only = no
guest ok = no

我已禁用 SELinux 并允许防火墙上的 Samba 端口通过。我已将joe的 Samba 密码设置为smbpasswd -a joe/home/joe/home具有 755 权限,并/home/joe具有用户/组joe/backups具有用户/组 root 和 777 权限。

这应允许具有 /backups 访问权限的用户joe在 Windows 上或通过同一 Linux 主机上的 samba 客户端连接到读/写 \hostname\backups。它还应允许访问 \hostname\joe(主目录),前提是该用户joe可以访问他的主目录/home/joe

使用本地主机上的Linux客户端:

$ smbclient --user joe '\\hostname\joe'
Enter joe's password: 
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 3.5.10-125.el6]
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*

        62359 blocks of size 33553920. 59182 blocks available
smb: \> cd Documents
smb: \Documents\> ls
NT_STATUS_ACCESS_DENIED listing \Documents\*

        62359 blocks of size 33553920. 59182 blocks available
smb: \Documents\> 

因此,在这里我可以连接到共享,但看不到内容,但可以 cd 到我知道存在的目录。请注意,/home/joe/Documents也是 755 并归 拥有joe

现在我将尝试访问backups

$ smbclient --user joe '\\hostname\backups\'
Enter joe's password: 
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 3.5.10-125.el6]
tree connect failed: NT_STATUS_BAD_NETWORK_NAME

因此在这种情况下我根本无法连接到共享。此外,我看到tail -f /var/log/samba/log.smbd

[2013/02/22 11:09:49.734263,  0] smbd/service.c:988(make_connection_snum) 
canonicalize_connect_path failed for service backups, path /backups

当我连接到我的家庭共享时,不会出现此消息。它 /backups肯定存在,模式为 777,并且是运行良好的外部 RAID 设备的挂载点。

我有另一个系统,配置基本相同,只是它是 CentOS 5 和 Samba 3.0.33 而不是 3.5.10。那里一切都按预期运行。

在 Windows 上,尝试访问\\hostname\backups\\hostname\joe(当然使用正确的凭据)会给出一个无用的“您没有权限......”对话框,其中包含“详细信息”:“找不到网络名称”。

请帮我查明真相!

答案1

可能需要使用 iptables。尝试以下操作:

/sbin/iptables -I INPUT -s adreess -m state --state NEW -p tcp --dport 137 -j ACCEPT
/sbin/iptables -I INPUT -s address -m state --state NEW -p tcp --dport 138 -j ACCEPT
/sbin/iptables -I INPUT -s address -m state --state NEW -p tcp --dport 139 -j ACCEPT
/sbin/iptables -I INPUT -s address -m state --state NEW -p tcp --dport 445 -j ACCEPT

pd:请原谅我的英语,我正在使用谷歌翻译。

相关内容