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

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

    <bug>
          <bug_id>12615</bug_id>
          
          <creation_ts>2007-08-23 08:56:32 +0400</creation_ts>
          <short_desc>Weak permissions on .beam files</short_desc>
          <delta_ts>2008-02-09 12:08:25 +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>ejabberd</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>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolay A. Fetisov">naf</reporter>
          <assigned_to name="Anton Farygin">rider</assigned_to>
          <cc>rider</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>54406</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolay A. Fetisov">naf</who>
    <bug_when>2007-08-23 08:56:32 +0400</bug_when>
    <thetext>В 1.1.3-alt2 в каталоге /var/lib/ejabberd помимо баз Mnesia находятся также 
каталоги ebin/ и priv/ с библиотеками ejabberd. Права на эти  каталоги 
выставлены в 750, ejabberd:ejabberd; на файлы в них - в 640, ejabberd:ejabberd.

Правильнее было бы, наверное, вынести исполняемые файлы за пределы каталога с 
рабочими базами. Или, как минимум, поставить на эти каталоги права 755 
root:root, на файлы в них - 644 root:root, и на /var/lib/ejabberd - 01750 
ejabberd:ejabberd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54448</commentid>
    <comment_count>1</comment_count>
    <who name="Mikhail Yakshin">greycat</who>
    <bug_when>2007-08-23 23:52:03 +0400</bug_when>
    <thetext>&gt; Правильнее было бы, наверное, вынести исполняемые файлы за пределы
&gt; каталога с рабочими базами.

Насколько я знаю об erlang - исходя из бесед с теми, кто на нем пишет - эти
файлы могут менять свое содержимое в процессе работы сервера. Так как /usr,
скажем, может быть смонтирован в ro (и это правильно), изменяемые файлы кладутся
в /var. Насколько я могу судить - это общеупотребительная практика для erlang,
именно там оно их и ищет и бороться с этим - сильно себе дороже. Так делает по
умолчанию make install и т.п., так же работает пакет в Debian/FreeBSD и т.п.

&gt; Или, как минимум, поставить на эти каталоги права 755 root:root,
&gt; на файлы в них - 644 root:root, и на /var/lib/ejabberd - 01750
&gt; ejabberd:ejabberd.

Объясните, пожалуйста, подробнее, в чем смысл этих изменений?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54449</commentid>
    <comment_count>2</comment_count>
    <who name="Nikolay A. Fetisov">naf</who>
    <bug_when>2007-08-24 01:13:46 +0400</bug_when>
    <thetext>(In reply to comment #1)
&gt; Насколько я знаю об erlang - исходя из бесед с теми, кто на нем пишет - эти
&gt; файлы могут менять свое содержимое в процессе работы сервера. 

Насколько я понимаю после очень поверхностного знакомства с общими положениями 
Erlang - BEAM-файлы являются скомпилированными в байт-код объектами. Они 
действительно _могут_ _быть_ изменены в процессе работы сервера - т.к. одной из 
особенностей Erlang является возможность динамически обновлять код без 
прерывания работы программы. Однако именно такая особенность вместе с 
возможностью самой программы писать в эти файлы очень и смущает.


&gt; ... Так делает по
&gt; умолчанию make install и т.п., так же работает пакет в Debian/FreeBSD и т.п.

Не совсем так, в Debian эти файлы расположены 
в /usr/lib/erlang/lib/ejabberd-&lt;version&gt;/ :
http://packages.debian.org/cgi-bin/search_contents.pl?searchmode=filelist&amp;word=ejabberd&amp;version=stable&amp;arch=i386
Аналогичная ситуация в FC8.

&gt; &gt; Или, как минимум, поставить на эти каталоги права 755 root:root,
&gt; &gt; на файлы в них - 644 root:root, и на /var/lib/ejabberd - 01750
&gt; &gt; ejabberd:ejabberd.
&gt; 
&gt; Объясните, пожалуйста, подробнее, в чем смысл этих изменений?

Смена владельца запретит непривилегированному пользователю ejabberd изменение, 
замену и добавление новых файлов в указанные каталоги.
Установка sticky bit на /var/lib/ejabberd не даст возможность из-под 
непривилегированного пользователя переименовать каталоги ebin и priv, с 
дальнейшим созданием новых каталогов с теми же именами и размещением в них 
новых (изменённых) объектов.

Хотя лучше вынести их отдельно в %_libdir .
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54450</commentid>
    <comment_count>3</comment_count>
    <who name="Vladimir V. Kamarzin">vvk</who>
    <bug_when>2007-08-24 08:05:15 +0400</bug_when>
    <thetext>(In reply to comment #0)

&gt; и на /var/lib/ejabberd - 01750 
&gt; ejabberd:ejabberd.

Это нарушает ALT Linux Security Packaging Policy:
http://docs.altlinux.ru/alt/devel/ch01s03.html#id2884290:
Владельцы каталогов

Пакеты НЕ ДОЛЖНЫ содержать каталоги, принадлежащие псевдо-пользователям. Вместо
этого следует использовать каталоги, принадлежащие root, с установленным sticky
bit и доступом группы по записи. 

Обоснование: Псевдо-пользователь не должен иметь право изменять атрибуты
каталогов, а также файлы и каталоги, созданные другими пользователями; нарушение
этого правила, как правило приводит к возможности осуществления pseudouser/root

Т.о. надо 01770 root:ejabberd /var/lib/ejabberd</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58042</commentid>
    <comment_count>4</comment_count>
    <who name="Mikhail Yakshin">greycat</who>
    <bug_when>2007-11-12 00:56:11 +0300</bug_when>
    <thetext>Fixed in 1.1.4, которая сейчас должна уйти в Сизиф.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>