LINUX.ORG.RU
ФорумAdmin

Samba - не видны ресурсы, определенные в include с использованием %I

 


0

1

Доброго дня. Есть сервер со след. конфигом

[global]

   workgroup = WORKGROUP
   netbios name = FILES
   wins server = 192.168.0.250
   server string = "files"
   log file = /var/log/samba/log.%m
   max log size = 1000
   logging = file
   panic action = /usr/share/samba/panic-action %d

   server role = standalone server
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user

   usershare allow guests = yes

   load printers = no
   show add printer wizard = no
   printcap name = /dev/null
   disable spoolss = yes

   force user = nobody
   force group = nogroup

#и главное вот, описания ресурсов находятся в отдельных файлах для разделения доступа по IP
   include = /etc/samba/includes/public.conf
   include = /etc/samba/includes/%I.conf

Есть файлы в etc/samba/includes

# public.conf
[PUBLIC]
    path = /home/samba/PUBLIC
    browsable = yes
    guest ok = yes
# 192.168.0.2.conf
[PRIVATE]
    path = /home/samba/PRIVATE
    browsable = yes
    guest ok = yes

Проблема в следующем - все компы видят \\FILES\PUBLIC, но комп 192.168.0.2 не видит в ресурсах \\FILES\PRIVATE. Доступ туда есть, т.е. можно, например, в Far-е сказать cd \\FILES\PRIVATE и ресурс откроется, но не получается после этого выйти наверх, в \\FILES. А если сказать cd \\FILES\PUBLIC, выйти наверх можно, но в списке будет только ресурс \\FILES\PUBLIC, \\FILES\PRIVATE не будет. Аналогично при входе из сетевого окружения (или по ярлыку \\FILES), в списке только ресурс PUBLIC. Это наблюдается на свежей установке Debian bookworm или Ubuntu 24.04.2 LTS. Но на старом сервере с Debian buster такой конфиг работает нормально (проблема всплыла как раз при обновлении). Что бы такого подкрутить, чтобы оно работало как встарь?

upd: для удобства добавил полный конфиг



Последнее исправление: namoru (всего исправлений: 1)
Ответ на: комментарий от VKraft

Смотрю логи. Если на полную катушку включить, их там богато, после одного обращения сразу больше мегабайта набегает. В целом, наблюдается следующее. Иногда, в смысле в каком-то разделе или процедуре, сервер нормально видит адрес клиента, тогда подключается правильный include файл и соответственно имеется ресурс. А иногда, в другом разделе/процедуре, всё выглядит так, как будто адреса клиента нет, и тогда идёт попытка подключить файл 0.0.0.0.conf, такого файла естественно нет, и облом. Например, в файле log.rpcd_classic (и во всех файлах log.rpcd_чтото, их там семь) повторяется такой кусочек, неправильный файл

[2025/07/17 16:37:53,  2, pid=6602, effective(0, 0), real(0, 0)] source3/param/loadparm.c:2544(lp_include)
  Can't find include file /etc/samba/includes/0.0.0.0.conf
  doing parameter include = /etc/samba/includes/public.conf

В файле же log.имякомпаклиента имеется такой кусочек, правильный файл

[2025/07/17 16:27:45.838517,  6, pid=6548, effective(0, 0), real(0, 0)] source3/param/loadparm.c:2398(lp_file_list_changed)
  lp_file_list_changed()
  file /etc/samba/includes/public.conf -> /etc/samba/includes/public.conf  last mod_time: 2025-07-17 04:02:00.853304617
  file /etc/samba/includes/%I.conf -> /etc/samba/includes/192.168.0.2.conf  last mod_time: 2025-07-17 16:25:29.410194019
  file /etc/samba/smb.conf -> /etc/samba/smb.conf  last mod_time: 2025-07-17 16:17:21.190579569

То есть, логи похоже как раз отражают ситуацию, что доступ к ресурсу есть, но в списке ресурса нет. Остается изначальный вопрос, что можно подкрутить.

При этом на что-то временное это положение списать нельзя, результат абсолютно стабилен, и от компа клиента тоже не зависит, опробовано на десятках машин. Возможная кривизна клиентов - тоже нет, они разные, от семёрки до одиннадцатой, и я даже пробовал обращаться с соседней линуксовой виртуалки, smbclient -L <адрес_сервера> не выдает в списке приватную папку.

Всё похоже на то, что в более новой версии samba что-то в логике работы или дефолтах поменялось, и в лучшем случае надо что-то ещё прописать, а в худшем оно и вовсе больше так не работает.

namoru
() автор топика
Ответ на: комментарий от namoru

Адрес клиента должен быть в любом случае иначе это баг или фича. Вообще разграничение доступа как правило делается по имени юзера с авторизацией и списками контроля доступа по группам желательно ну или по юзерам отдельно если это юзер отдельный случай или их немного.

VKraft ★★
()
Последнее исправление: VKraft (всего исправлений: 2)