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

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

    <bug>
          <bug_id>30413</bug_id>
          
          <creation_ts>2014-10-23 12:46:34 +0400</creation_ts>
          <short_desc>Добавить -X в вызов osec в osec.cron</short_desc>
          <delta_ts>2016-12-08 23:27:28 +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>osec-cronjob</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>30940</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergey Y. Afonin">asy</reporter>
          <assigned_to name="Alexey Gladkov">legion</assigned_to>
          <cc>glebfm</cc>
    
    <cc>legion</cc>
    
    <cc>mike</cc>
    
    <cc>real.altlinux.org</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>148191</commentid>
    <comment_count>0</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2014-10-23 12:46:34 +0400</bug_when>
    <thetext>Чтобы не править osec.cron, не плохо бы предопределить файл с исключениями. И не плохо бы пример, так как я что-то не угадаю никак, как мне сделать исключение для, например, /var/www/vhosts/*/temp/*, если /var/www находится в dirs.conf.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148193</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2014-10-23 14:13:17 +0400</bug_when>
    <thetext>В master это уже реализовано. К сожалению тот кто это заказывал исчез (возможно потерял интерес) и протестировать результат не смог.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148194</commentid>
    <comment_count>2</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2014-10-23 15:27:46 +0400</bug_when>
    <thetext>Нашел

-       $cmd /usr/bin/osec -D /var/lib/osec -f &quot;$CONFDIR/dirs.conf&quot; ||
+       $cmd /usr/bin/osec \
+               ${EXCLUDE_FILE:+-X &quot;$EXCLUDE_FILE&quot;} \
+               -D &quot;$DATABASE_DIR&quot; \
+               -f &quot;$CONFDIR/dirs.conf&quot; ||

На вид нормально. Только вот формат записи для паттернов никак не угадаю. :-( Никак не получается задать игнорирование подкаталогов temp в /var/www/vhosts/*/

Хотя, я там вижу патч &quot;Fix exclude option&quot;. Не это ли причина ? Я с 1.2.5-alt3 пробую.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148195</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2014-10-23 15:32:38 +0400</bug_when>
    <thetext>Исключения адаются в файле в формате fnmatch.

Я сейчас сделаю тестовое задание.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148197</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2014-10-23 16:00:58 +0400</bug_when>
    <thetext>(В ответ на комментарий №3)
&gt; Я сейчас сделаю тестовое задание.

http://git.altlinux.org/tasks/132898/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148198</commentid>
    <comment_count>5</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2014-10-23 17:15:31 +0400</bug_when>
    <thetext>(In reply to comment #3)

&gt; Исключения задаются в файле в формате fnmatch.

Тогда непонятно, почему не работает. osec из 132898 поставил.
Сделал файл /etc/osec/exclude-patterns.conf. Содержимое из 4-х строк:

*2345678*
123456789
temp/*
temp

В кавычки и апострафы брать пробовал тоже. Есть файл
/var/www/vhosts/webmail/temp/123456789
Он продолжает мониториться.

В pipe.conf EXCLUDE_FILE=/etc/osec/exclude-patterns.conf написать не забыл.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148204</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2014-10-23 18:25:12 +0400</bug_when>
    <thetext>(В ответ на комментарий №5)
&gt; В pipe.conf EXCLUDE_FILE=/etc/osec/exclude-patterns.conf написать не забыл.

Спасибо. Вы нашли багу :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148206</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2014-10-23 18:40:15 +0400</bug_when>
    <thetext>(В ответ на комментарий №6)
&gt; (В ответ на комментарий №5)
&gt; &gt; В pipe.conf EXCLUDE_FILE=/etc/osec/exclude-patterns.conf написать не забыл.
&gt; 
&gt; Спасибо. Вы нашли багу :)

Исправление в одну строчку:

diff --git a/data/osec.cron b/data/osec.cron
index 179c3c3..219af82 100755
--- a/data/osec.cron
+++ b/data/osec.cron
@@ -97,7 +97,6 @@ fi
 if [ -n &quot;${EXCLUDE_FILE-}&quot; ]; then
        if [ ! -f &quot;$EXCLUDE_FILE&quot; ]; then
                errlog &quot;$EXCLUDE_FILE: Not found, parameter EXCLUDE will be ignored&quot;
-       else
                EXCLUDE_FILE=
        fi
 fi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148210</commentid>
    <comment_count>8</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2014-10-24 09:38:56 +0400</bug_when>
    <thetext>Всё равно не работает. Даже если -X /etc/osec/exclude-patterns.conf написать вместо ${EXCLUDE_FILE:+-X &quot;$EXCLUDE_FILE&quot;}. В каталоге temp мониторится всё, включая 123456789.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148214</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2014-10-24 13:39:36 +0400</bug_when>
    <thetext>(В ответ на комментарий №8)
&gt; Всё равно не работает. Даже если -X /etc/osec/exclude-patterns.conf написать
&gt; вместо ${EXCLUDE_FILE:+-X &quot;$EXCLUDE_FILE&quot;}. В каталоге temp мониторится всё,
&gt; включая 123456789.

Потому что правильный fnmatch для исключения каталога temp:

*/temp
*/temp/*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148216</commentid>
    <comment_count>10</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2014-10-24 14:50:52 +0400</bug_when>
    <thetext>Так я тоже пробовал. В общем, это просто баг в 1.2.5-alt3. В osec из задания 132898 работает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148217</commentid>
    <comment_count>11</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2014-10-24 14:54:21 +0400</bug_when>
    <thetext>И, всё же, я бы положил exclude-patterns.conf с примером, прямо хоть тот же
 
*/temp
*/temp/*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148218</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2014-10-24 14:57:20 +0400</bug_when>
    <thetext>(В ответ на комментарий №11)

Да. В 1.2.5 эта опция была сломана.

&gt; И, всё же, я бы положил exclude-patterns.conf с примером, прямо хоть тот же
&gt; 
&gt; */temp
&gt; */temp/*

ОК. Приложу exclude-patterns.conf как пример.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151806</commentid>
    <comment_count>13</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2015-06-17 09:38:21 +0300</bug_when>
    <thetext>Не пора ли в Сизифе обновить ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153182</commentid>
    <comment_count>14</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2015-10-18 23:21:28 +0300</bug_when>
    <thetext>Тук-тук. Надо обновлять версию в Сизифе.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156959</commentid>
    <comment_count>15</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2016-05-24 13:28:01 +0300</bug_when>
    <thetext>Уже бац-бац. Анонс p8 не носу. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160146</commentid>
    <comment_count>16</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2016-11-23 23:07:55 +0300</bug_when>
    <thetext>osec-1.2.7-alt1 -&gt; icarus:

* Sat Sep 03 2016 Alexey Gladkov &lt;legion@altlinux&gt; 1.2.7-alt1
- New version (1.2.7);
- Fix EXCLUDE_FILE handling (ALT#30413);
- Add default exclude.conf (ALT#30413);
- dirs.conf: Add /usr/share (ALT#31706);
- Use perl-RPM2;

* Thu Oct 23 2014 Alexey Gladkov &lt;legion@altlinux&gt; 1.2.6-alt1
- New version (1.2.6);
- Add file exclusion option;
- osec.cron: Add multiconfiguration support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160149</commentid>
    <comment_count>17</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2016-11-23 23:15:52 +0300</bug_when>
    <thetext>Прошу прощения, этого не должно было случиться.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160175</commentid>
    <comment_count>18</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2016-11-24 17:20:29 +0300</bug_when>
    <thetext>(In reply to comment #17)

&gt; Прошу прощения, этого не должно было случиться.

А жаль... Я смотрю, упирается в perl-RPM2, который хочет rpm-devel &gt;= 4.6 ? perl-RPM-Database тоже более новый rpm хочет ?

Я так понимаю, в p8 osec с таким изменением уже не попадает, даже если в Сизифе RPM обновится ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160183</commentid>
    <comment_count>19</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2016-11-24 18:30:26 +0300</bug_when>
    <thetext>(In reply to comment #18)

&gt; А жаль... Я смотрю, упирается в perl-RPM2, который хочет rpm-devel &gt;= 4.6 ?
&gt; perl-RPM-Database тоже более новый rpm хочет ?

Так. Стоп. Это же perl-RPM, и он есть. Попробовал собрать себе 1.2.7-alt1. Почти всё хорошо, но есть но. В dirs.conf добавил &quot;/home&quot;, в exclude.conf добавил &quot;*/asy/*&quot;. В итоге файлы внутри не отслеживаются, но отслеживаются атрибуты самого каталога. Например, создание файла внутри меняет время:

Changed controlled files:
        - /home/asy
                mtime: Thu Nov 24 19:18:34 2016 -&gt; Thu Nov 24 19:23:45 2016

Ещё в спеке надо поправить:

-mv -- etc/dirs.conf .%_datadir/pipe.conf etc/osec/
+mv -- etc/dirs.conf etc/exclude.conf .%_datadir/pipe.conf etc/osec/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160185</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2016-11-24 18:48:29 +0300</bug_when>
    <thetext>(В ответ на комментарий №19)
&gt; Так. Стоп. Это же perl-RPM, и он есть. Попробовал собрать себе 1.2.7-alt1.
&gt; Почти всё хорошо, но есть но. В dirs.conf добавил &quot;/home&quot;, в exclude.conf
&gt; добавил &quot;*/asy/*&quot;. В итоге файлы внутри не отслеживаются, но отслеживаются
&gt; атрибуты самого каталога. Например, создание файла внутри меняет время:
&gt; 
&gt; Changed controlled files:
&gt;         - /home/asy
&gt;                 mtime: Thu Nov 24 19:18:34 2016 -&gt; Thu Nov 24 19:23:45 2016

А это потому что &apos;/home/asy&apos; не подподает под паттерн &quot;*/asy/*&quot;.

&gt; Ещё в спеке надо поправить:
&gt; 
&gt; -mv -- etc/dirs.conf .%_datadir/pipe.conf etc/osec/
&gt; +mv -- etc/dirs.conf etc/exclude.conf .%_datadir/pipe.conf etc/osec/

Да, забыл. Спасибо!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160211</commentid>
    <comment_count>21</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2016-11-25 10:43:59 +0300</bug_when>
    <thetext>&gt; А это потому что &apos;/home/asy&apos; не подподает под паттерн &quot;*/asy/*&quot;.

Что-то я второй раз на эти грабли наступил...

В общем, мне кажется, эту версию стоит уже в Сизиф отправить и в p8 (c возвратом perl-RPM вместо perl-RPM2). Кстати, а libcap-devel в сборочных зависимостях правда нужен ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160214</commentid>
    <comment_count>22</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2016-11-25 12:01:26 +0300</bug_when>
    <thetext>(В ответ на комментарий №21)
&gt; &gt; А это потому что &apos;/home/asy&apos; не подподает под паттерн &quot;*/asy/*&quot;.
&gt; 
&gt; Что-то я второй раз на эти грабли наступил...

Паттерны они такие ))

&gt; В общем, мне кажется, эту версию стоит уже в Сизиф отправить и в p8 (c
&gt; возвратом perl-RPM вместо perl-RPM2). Кстати, а libcap-devel в сборочных
&gt; зависимостях правда нужен ?

Нужен. osec сбрасывает себе права перед тем как начать сканирование.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160599</commentid>
    <comment_count>23</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2016-12-08 23:27:28 +0300</bug_when>
    <thetext>osec-1.2.7-alt1 -&gt; sisyphus:

* Sat Sep 03 2016 Alexey Gladkov &lt;legion@altlinux&gt; 1.2.7-alt1
- New version (1.2.7);
- Fix EXCLUDE_FILE handling (ALT#30413);
- Add default exclude.conf (ALT#30413);
- dirs.conf: Add /usr/share (ALT#31706);
- Use perl-RPM2;

* Thu Oct 23 2014 Alexey Gladkov &lt;legion@altlinux&gt; 1.2.6-alt1
- New version (1.2.6);
- Add file exclusion option;
- osec.cron: Add multiconfiguration support.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>