Samba netbios 别名引发莫名其妙的用户共享错误

Samba netbios 别名引发莫名其妙的用户共享错误

我正在尝试在 Ubuntu 12.04 LTS(2:3.6.3-2ubuntu2)上的 Samba 中设置 netbios 别名。

我的主要共享(不在别名上)工作正常。别名上的共享可以列出,但连接时失败,并出现以下错误:

param/loadparm.c:9114(process_usershare_file) process_usershare_file: /var/lib/samba/usershares/usersx 统计失败。没有该文件或目录

如果我创建上述文件,我会收到“权限被拒绝”的信息。

当我连接时smbclient -U% //serverh/users我得到:

树连接失败:NT_STATUS_BAD_NETWORK_NAME

我的 samba 配置smb.conf和相关别名配置smb-%L.conf没有提及任何与用户共享相关的内容,并且我知道当设置是默认时用户共享是被禁用的,所以为什么它是日志中唯一提到的东西是一个谜。

下面是我尝试过的(很多)配置变体之一的示例:

smb配置文件

[global]
netbios name = ServerC
netbios aliases = ServerO ServerH
workgroup = CC
server string = %h server (Samba, Ubuntu)
interfaces = 192.168.0/24 10.10.10.0/24 eth0
log file = /var/log/samba/log.%m
max log size = 4000
syslog = 0
map to guest = Bad user
create mask = 0775
directory mask = 0775
security = user
encrypt passwords = true
guest account = nobody
usershare allow guests = yes
wins support = yes
local master = yes
preferred master = yes
os level = 65
include = /etc/samba/smb-%L.conf

[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = yes
read only = yes

不起作用的配置:

smb-服务器h.conf

[global]
workgroup = CC
netbios name = ServerH
map to guest = Bad User
guest ok = Yes
create mask = 0775
directory mask = 0775
security = user

[users]
comment = "Server H Users"
path = /var/local/samba/serverh/users
nt acl support = No
guest ok = yes
force group = sambashare

工作别名的配置:

smb-服务器c.conf

[global]
workgroup = CC
netbios name = ServerO
map to guest = Bad User
guest ok = Yes
create mask = 0775
directory mask = 0775
security = user

[data]
comment = "Server C Data"
path = /var/local/samba/serverc/data
read only = no
nt acl support = No
guest ok = yes
force group = sambashare

我找到了很多关于问题可能出在哪里的建议,但都没有用。目录serverh/users存在,我已在其上运行chmod 775 -R serverhchown nobody:sambashare serverh。与服务器 C 具有相同的权限。我没有使用 selinux,但我运行了。当我将共享放入文件中echo 0 > /selinux/enforce时,我可以毫无问题地访问它。userssmb-serverc.conf

Samba 表现得好像目录不存在,但显然它存在(因为它在配置中起作用serverc),并且好像用户共享已启用(但配置中未提及),并且在任何情况下都无法访问共享,尽管配置遵循了看似最简单的 netbios 别名情况。

我很茫然,如能得到任何帮助我将非常感激。

答案1

解决方案是在 2008 年的文章中找到的Samba:Debian 上的 IP 别名服务器

为了防止比特腐烂,请注意以下几点:

添加 IP 别名至/etc/network/interfaces

... 
iface eth0 inet static
address 10.10.10.10
netmask 255.255.255.0

iface eth0:1 inet static
address 10.10.10.11
netmask 255.255.255.0
auto eth0:1

iface eth0:2 inet static
address 10.10.10.12
netmask 255.255.255.0
auto eth0:2

使用 调出别名。如果您使用这种方法调出接口,ifup eth0:1; ifup eth0:2请不要忘记将这些行添加到 eg 。/etc/rc.local

配置名称查找

我正在使用 dnsmasq,所以我只需要将主机添加到我的/etc/hosts文件中,如下所示:

10.10.10.10 serverc
10.10.10.11 serverh
10.10.10.12 servero

可能需要删除或编辑名称查找缓存/var/lib/samba/wins.dat和/或/var/cache/samba/browser.dat。如果网络缓存被毒害可能需要更多努力

更新 Samba 配置

smb.conf:将include行从更改/etc/samba/smb-%L.conf/etc/samba/%i.conf

然后将 IP 别名配置符号链接到相应的配置,如下所示:

ln -s smb-serverc.conf 10.10.10.10.conf
ln -s smb-serverh.conf 10.10.10.11.conf
ln -s smb.servero.conf 10.10.10.12.conf

编辑每个配置以添加相应的interfaces =行,即

  • smb-serverc.confinterfaces = eth0
  • smb-serverh.confinterfaces = eth0:1
  • smb-servero.confinterfaces = eth0:2

不要忘记删除任何interfaces =东西,smb.conf因为它们可能会把事情搞糟。

奔跑service smbd restartservice nmbd restart参加比赛。


一个不太复杂的替代方法是设置smb ports = 139,然后 NetBios 名称就会起作用。

相关内容