<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>51190</bug_id>
          
          <creation_ts>2024-08-19 10:55:11 +0300</creation_ts>
          <short_desc>Регресс директивы include для переменной %i начиная с версии 4.16</short_desc>
          <delta_ts>2025-07-30 16:29:56 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>samba</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugzilla.altlinux.org/show_bug.cgi?id=55254</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="GordeevM">max.gordeef</reporter>
          <assigned_to name="Evgeny Sinelnikov">sin</assigned_to>
          <cc>alimektor</cc>
    
    <cc>max.gordeef</cc>
    
    <cc>shevchenkodyu</cc>
    
    <cc>sin</cc>
    
    <cc>varaksaaa</cc>
    
    <cc>zvn</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>250205</commentid>
    <comment_count>0</comment_count>
    <who name="GordeevM">max.gordeef</who>
    <bug_when>2024-08-19 10:55:11 +0300</bug_when>
    <thetext>Для include до версии 4.16 работало, а теперь не работает.

man smb.conf, раздел VARIABLE SUBSTITUTIONS
%i
    the local IP address to which a client connected.
    Before 4.0.0 it could contain IPv4 mapped IPv6 addresses, now it
only contains IPv4 or IPv6 addresses

Похожие баги апстрима для других переменных:
https://bugzilla.samba.org/show_bug.cgi?id=15243
https://bugzilla.samba.org/show_bug.cgi?id=15255</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250984</commentid>
    <comment_count>1</comment_count>
    <who name="Evgeny Shesteperov">alimektor</who>
    <bug_when>2024-09-01 19:41:29 +0300</bug_when>
    <thetext>Версия

-   samba-4.20.4-alt1

Шаги воспроизведения

На сервере (от рута):

    echo &apos;net.ipv6.conf.all.disable_ipv6 = 1&apos; &gt;&gt; /etc/sysctl.conf
    sysctl -f
    mkdir -p /data/$(ip route get 1.2.3.4 | awk &apos;{print $7}&apos; | xargs)
    chmod 777 -R /data/
    echo &quot;include = /etc/samba/smb-%i.conf&quot; &gt;&gt; /etc/samba/smb.conf
    cat &gt;&gt; /etc/samba/smb-$(hostname -i).conf &lt;&lt;&apos;EOF&apos;
    [client_data]
      comment = Client Data
      path = /data/%i
      browseable = yes
      writable = yes
      force directory mode = 0770
      force create mode = 0660
      create mask = 0660
      directory mask = 0770
    EOF
    systemctl restart samba
    testparm

На клиенте:

    smbclient -L dc -U testuser

Ожидаемый результат: client_data в списке

    Enter SAMBA\testuser&apos;s password: 

        Sharename       Type      Comment
        ---------       ----      -------
        media           Disk      media
        sysvol          Disk      
        netlogon        Disk      
        SHARE           Disk      Share directory for AD users
        client_data     Disk      Client Data
        IPC$            IPC       IPC Service (Samba 4.14.10)

Фактический результат: client_data нет в списке

    Password for [SAMBA\testuser]:

        Sharename       Type      Comment
        ---------       ----      -------
        media           Disk      media
        sysvol          Disk      
        netlogon        Disk      
        SHARE           Disk      Share directory for AD users
        IPC$            IPC       IPC Service (Samba 4.20.4-alt1)

Воспроизводится в P10

Не воспроизводится в P9: версия samba-4.14.10-alt2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254516</commentid>
    <comment_count>2</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2024-11-15 05:58:18 +0300</bug_when>
    <thetext>(Ответ для GordeevM на комментарий #0)

Исходя из финальной части вот этой задачи, получается, что проблема только в отображении:

&gt; https://bugzilla.samba.org/show_bug.cgi?id=15255#c8
&gt; ...
&gt; substitution is working correctly
&gt; files all loaded and parsed correctly
&gt; shares accessible but not visible.
&gt; ...

Давайте определимся со следующим:

0) Можно ли сказать, что 4.16.10 и старше проблема имеет место быть только в плане отображения - &quot;shares accessible but not visible&quot;?

1) Насколько данное поведение воспроизводится в последних релизах. Например, на 4.20.4 и старше?

2) В какой степени целесообразно подключаться к исправлению данной проблемы отображения шары доступной только для заданного ip-адреса?

3) Насколько это исправление актуально для ipv6? Исправление только для ipv4 выглядит полумерой, а для полноценного исправления необходимо строить стенды с ipv6.

______________

Если пункт 0) подтверждается, то данная проблема выглядит общей и на фоне множества других проблем не приоритетной. По мере появления ресурсов к ней можно вернуться, но в ближайшее время заниматься ей можно только опционально.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254519</commentid>
    <comment_count>3</comment_count>
    <who name="zvn">zvn</who>
    <bug_when>2024-11-15 08:52:25 +0300</bug_when>
    <thetext>Если сосвсем коротко, работать перестало это:


/etc/samba/browseable-no.conf
browseable = no
available = no


/etc/samba/browseable-yes.conf
browseable = yes
available = yes


в /etc/samba
stat ./browseable-yes-A.B.C.D.conf
  Файл: ./browseable-yes-A.B.C.D.conf -&gt; browseable-yes.conf
где A.B.C.D - адрес интерфейса сервера для доступа без ограничений.


в /etc/samba/smb.conf:
include = /etc/samba/browseable-no.conf
include = /etc/samba/browseable-yes-%i.conf

[service1]
    include = /etc/samba/browseable-yes.conf
    ...
[service2]
    ...
[service3]
    ...

Т.е. сначала включается запрет на видимость и доступность всех сервисов (include = /etc/samba/browseable-no.conf), затем включается видимость и доступность, если подключение к интерфейсу сервера с адресом A.B.C.D

Видимость и доступность service1 безусловная, а service2 и service2 не содержат include = /etc/samba/browseable-yes.conf и доступность и видимость зависит от того интерфейса, к которому происходит подключение.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254521</commentid>
    <comment_count>4</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2024-11-15 09:13:32 +0300</bug_when>
    <thetext>С точки зрения производительности выглядит, как необходимость запускать отдельные экземпляры smbd с разными конфигами в рантайме перечитывая дерево вложенных файлов, вычисляя всё это хозяйство для каждого отдельного ip-шника.

Странно, что это, вообще, работает. А как это выглядит для ipv6? Или поддержка ipv6 не требуется?

Кстати, а каково ожидание от пользователя? Получается, что один и тот же пользователь, обращаясь с разных узлов к одному и тому же серверу, должен получать разные ответы?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254522</commentid>
    <comment_count>5</comment_count>
    <who name="zvn">zvn</who>
    <bug_when>2024-11-15 09:28:32 +0300</bug_when>
    <thetext>(Ответ для Evgeny Sinelnikov на комментарий #4)
&gt; Странно, что это, вообще, работает. А как это выглядит для ipv6? Или
&gt; поддержка ipv6 не требуется?
Работает хорошо.
ipv6 не требуется.

&gt; Кстати, а каково ожидание от пользователя? Получается, что один и тот же
&gt; пользователь, обращаясь с разных узлов к одному и тому же серверу, должен
&gt; получать разные ответы?

Да, именно так, это не зависит от пользователя.
Потому что на один интерфейс сервера приходит трафик из сетей, откуда должно быть видно всё, а на другой интерфейс сервера приходит трафик из сети, откуда только ограниченный набор сервисов должен быть виден.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254524</commentid>
    <comment_count>6</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2024-11-15 09:32:15 +0300</bug_when>
    <thetext>(Ответ для zvn на комментарий #5)
[...]
&gt; Да, именно так, это не зависит от пользователя.
&gt; Потому что на один интерфейс сервера приходит трафик из сетей, откуда должно
&gt; быть видно всё, а на другой интерфейс сервера приходит трафик из сети,
&gt; откуда только ограниченный набор сервисов должен быть виден.

А указывается ip-адрес клиента или интерфейса на сервере?
Кто прислал запрос или на какой ip-адрес пришёл запрос?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254525</commentid>
    <comment_count>7</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2024-11-15 09:34:24 +0300</bug_when>
    <thetext>(Ответ для Evgeny Sinelnikov на комментарий #6)
&gt; (Ответ для zvn на комментарий #5)
&gt; [...]
&gt; &gt; Да, именно так, это не зависит от пользователя.
&gt; &gt; Потому что на один интерфейс сервера приходит трафик из сетей, откуда должно
&gt; &gt; быть видно всё, а на другой интерфейс сервера приходит трафик из сети,
&gt; &gt; откуда только ограниченный набор сервисов должен быть виден.
&gt; 
&gt; А указывается ip-адрес клиента или интерфейса на сервере?
&gt; Кто прислал запрос или на какой ip-адрес пришёл запрос?

...
mkdir -p /data/$(ip route get 1.2.3.4 | awk &apos;{print $7}&apos; | xargs)
...

Ну, да... ip-адрес, на который пришёл запрос. Никогда такой конфигурацией не пользовался.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254526</commentid>
    <comment_count>8</comment_count>
    <who name="zvn">zvn</who>
    <bug_when>2024-11-15 09:41:40 +0300</bug_when>
    <thetext>&gt; Ну, да... ip-адрес, на который пришёл запрос. Никогда такой конфигурацией не
&gt; пользовался.

Непосредственно Вам не предъявляли таких требований.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269331</commentid>
    <comment_count>9</comment_count>
    <who name="Artem Varaksa">varaksaaa</who>
    <bug_when>2025-07-17 16:09:40 +0300</bug_when>
    <thetext>Ошибка актуальна для p11 и sisyphus.

[sisyphus] samba-4.21.7-alt1.x86_64
[p11+387440] samba-4.21.7-alt1.x86_64
[p11] samba-4.20.8-alt2.x86_64</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>