我正在尝试在 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 serverh
和chown nobody:sambashare serverh
。与服务器 C 具有相同的权限。我没有使用 selinux,但我运行了。当我将共享放入文件中echo 0 > /selinux/enforce
时,我可以毫无问题地访问它。users
smb-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.conf
:interfaces = eth0
smb-serverh.conf
:interfaces = eth0:1
smb-servero.conf
:interfaces = eth0:2
不要忘记删除任何interfaces =
东西,smb.conf
因为它们可能会把事情搞糟。
奔跑service smbd restart
,service nmbd restart
参加比赛。
一个不太复杂的替代方法是设置smb ports = 139
,然后 NetBios 名称就会起作用。