Я пытаюсь настроить псевдонимы netbios в Samba на Ubuntu 12.04 LTS (2:3.6.3-2ubuntu2).

Моя основная доля (не по псевдонимам) работает нормально. Общие доли на псевдонимах могут быть перечислены, но не удается при подключении со следующей ошибкой:

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.conf

[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

Неработающий конфиг:

кому-л-serverh.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

Конфиг для рабочего псевдонима:

кому-л-serverc.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 ), и как будто пользовательские ресурсы были включены (но они не упомянуты в конфигурации), и в любом случае общие ресурсы не могут быть доступ, хотя config следует тому, что кажется самым простым случаем для псевдонимов netbios.

Я в растерянности, и любая помощь будет наиболее ценной.

1 ответ1

0

Решение было найдено в статье 2008 Samba: IP Alias Servers на Debian.

Чтобы предотвратить битрот, вот существенные моменты:

Добавьте псевдонимы 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 . Не забудьте добавить эти строки, например, в /etc/rc.local если вы так настраиваете свои интерфейсы.

Настроить поиск по имени

Я использую dnsmasq, поэтому мне просто нужно было добавить hosts в мой файл /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 будет работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .