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

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

    <bug>
          <bug_id>15268</bug_id>
          
          <creation_ts>2008-04-08 15:21:22 +0400</creation_ts>
          <short_desc>При установке на чистую систему не создаётся пользователь postgres</short_desc>
          <delta_ts>2009-10-31 12:24:54 +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>postgresql-common</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="Sergey N. Yatskevich">syatskevich</reporter>
          <assigned_to name="Alexei Takaseev">taf</assigned_to>
          <cc>mike</cc>
    
    <cc>taf</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>67773</commentid>
    <comment_count>0</comment_count>
    <who name="Sergey N. Yatskevich">syatskevich</who>
    <bug_when>2008-04-08 15:21:22 +0400</bug_when>
    <thetext>В postgresql8.3-server%prein не создаётся (при необходимости) пользователь и
группа postgres и из-за этого установка проходит со сбоями и в дальнейшем
система не работает. Приходится вручную создавать пользователя и группу и
назначать соответствующие права на каталоги, либо переустанавливать пакет после
создания пользователя.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67785</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Bochkaryov">misha</who>
    <bug_when>2008-04-08 16:12:17 +0400</bug_when>
    <thetext>Пакет postgresql8.3-server требует по зависимостям postgresql-common, который в
секции %pre как раз и создает как пользователя, так и группу postgres.

Проверено на свежесгенерированной VE, баг не воспроизводится, пользователь и
группа успешно создаются.

В принципе, можно функциональность продублировать, но я не уверен, что это стоит
делать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67791</commentid>
    <comment_count>2</comment_count>
    <who name="Sergey N. Yatskevich">syatskevich</who>
    <bug_when>2008-04-08 17:26:41 +0400</bug_when>
    <thetext>Проблема в том, что Вы пытаетесь создать группу с предопределённым номером 46 и
если он занят, то создание группы обламывается, а с ним и создание пользователя.
Что у меня и произошло. Насколько необходимо создавать группу и пользователя
именно с номером 46? Может лучше пусть система выбирает?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67792</commentid>
    <comment_count>3</comment_count>
    <who name="Sergey N. Yatskevich">syatskevich</who>
    <bug_when>2008-04-08 17:29:35 +0400</bug_when>
    <thetext>Наверное я не очень точно сказал - на чистую. Имелось в виду - на систему, на
которой не было пользователя postgres. А так там много чего установлено.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67807</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Bochkaryov">misha</who>
    <bug_when>2008-04-08 19:33:42 +0400</bug_when>
    <thetext>(In reply to comment #2)
&gt; Проблема в том, что Вы пытаетесь создать группу с предопределённым номером 46 и
&gt; если он занят, то создание группы обламывается, а с ним и создание пользователя.

Есть такое дело, но таки не в этом пакете, а в postgresql-common, который пока
что  не мой, а mithraen@ :)

Думаю, багу стоит перевесить на postgresql-common, что и делаю.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67808</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Bochkaryov">misha</who>
    <bug_when>2008-04-08 19:40:05 +0400</bug_when>
    <thetext>2mithraen: а фиксированное выставление UID/GID 46 при создании пользователя
postgres было по какой-то важной причине выставлено?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67828</commentid>
    <comment_count>6</comment_count>
    <who name="Vladimir V. Kamarzin">vvk</who>
    <bug_when>2008-04-09 09:37:22 +0400</bug_when>
    <thetext>Так делать не надо. Если хочется фиксированный uid/gid, то нужно оформить FR на
пакет setup, чтобы оно было сразу искаропки.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68255</commentid>
    <comment_count>7</comment_count>
    <who name="Denis Smirnov">mithraen</who>
    <bug_when>2008-04-14 02:55:16 +0400</bug_when>
    <thetext>Такс... как убить сразу двух зайцев?
В смысле попытаться все-таки создавать с фиксированым номером, но если он занят
-- с любым другим?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68260</commentid>
    <comment_count>8</comment_count>
    <who name="Vladimir V. Kamarzin">vvk</who>
    <bug_when>2008-04-14 09:12:35 +0400</bug_when>
    <thetext>Ну видимо нечто вроде

getent group 46 || /usr/sbin/groupadd -r -f %pg_group &gt;/dev/null 2&gt;&amp;1 ||:
getent passwd 46 || /usr/sbin/useradd -g %pg_group -c &apos;pgsql&apos; \
        -d %pg_home -s /dev/null -r %pg_user &gt;/dev/null 2&gt;&amp;1 ||:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68273</commentid>
    <comment_count>9</comment_count>
    <who name="Sergey N. Yatskevich">syatskevich</who>
    <bug_when>2008-04-14 12:51:13 +0400</bug_when>
    <thetext>Может всё же кто-нибудь знающий объяснит мне,зачем нужно неприменно
регистрировать группу и пользователя под id 46, если и без этого можно обойтись?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68306</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Bochkaryov">misha</who>
    <bug_when>2008-04-14 19:19:44 +0400</bug_when>
    <thetext>(In reply to comment #9)
&gt; Может всё же кто-нибудь знающий объяснит мне,зачем нужно неприменно
&gt; регистрировать группу и пользователя под id 46, если и без этого можно обойтись?

А уж если учесть, что на сегодня в пакете setup группа и пользователь postgres
присутствуют в файле /etc/passwd именно под UID/GID 46, то по новой можно
добавлять и без жесткой привязки.

Если же кто-то вручную вынес системного пользователя - значит у него были на то
причины.

В общем, до появления внятного полиси на эту тему я бы предложил убрать в
postgresql-common явное задание UID и GID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68307</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2008-04-14 19:33:39 +0400</bug_when>
    <thetext>Хм, я бы предложил как раз оставить.

Аргументация -- сервис под этим псевдопользователем работает с данными и если
есть возможность сохранить совместимость численных uid/gid между инсталяциями --
это надо сделать.

Мишка, я как-то об это конкретные шишки набил, натягивая бэкап поверх новенького
VE template.  Хорошо, что сам заметил дивные права в результате.

Если кто-то вынес системного пользователя -- он ССЗБ и пусть продолжает
кувыркаться как хочет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68311</commentid>
    <comment_count>12</comment_count>
    <who name="Sergey N. Yatskevich">syatskevich</who>
    <bug_when>2008-04-14 20:51:58 +0400</bug_when>
    <thetext>Тогда надо вообще убрать команду создания пользователя и группы, зачем, если они
и так есть? Вместо этого поставить проверку наличия нужного пользователя и
группы и злобно ругаться при их отсутствии, отказываясь от всяких гарантий
(будет хотя бы понятно что ты ССЗБ).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68313</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2008-04-14 21:45:26 +0400</bug_when>
    <thetext>Потому что в системе, которая растёт от древнего setup, может не быть этих
пользователей-групп (они отдыхают в /etc/{passwd,shadow}.rpmnew в таком разе).

Серёж, я по этим граблям походил уже достаточно, чтобы сказать именно то, что
сказал: делать -- надо, если есть зарегистрированные в setup uid/gid --
пользоваться следует именно ими.

См. тж. драфт/обсуждение здесь: http://freesource.info/wiki/AltLinux/Policy/UidGid</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68336</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Bochkaryov">misha</who>
    <bug_when>2008-04-15 11:31:36 +0400</bug_when>
    <thetext>(In reply to comment #11)
&gt; Мишка, я как-то об это конкретные шишки набил, натягивая бэкап поверх новенького
&gt; VE template.  Хорошо, что сам заметил дивные права в результате.

Миш, хитровымученных вариантов может быть много. В данном случае проблема
усугубляется еще и несовместимостью данных между разными версиями PostgreSQL.

Миграция данных между _разными_ системами - это вобще отдельная тема, которую
лучше отдельно обсуждать.

&gt; Если кто-то вынес системного пользователя -- он ССЗБ и пусть продолжает
&gt; кувыркаться как хочет.

Ну, резервное копирование с привязкой к UID/GID и без переноса данных о
пользователях/группах - это тоже повод для самостоятельного кувыркания :)

JIMHO, будет вполне достаточно такого варианта:
1. В дефолтном /etc/passwd есть пользователь с фиксированными UID/GID (уже).
2. При установке пакета производится попытка создать пользователя, но уже без
привязки к UID/GID (нужно убрать привязку).

Кроме того, это надо решать в рамках полиси для всех пакетов, создающих
псевдопользователей. А иначе мы просто видоизменим бардак, а не решим проблему.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68358</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2008-04-15 15:39:53 +0400</bug_when>
    <thetext>(In reply to comment #14)
&gt; JIMHO, будет вполне достаточно такого варианта:
&gt; 1. В дефолтном /etc/passwd есть пользователь с фиксированными UID/GID (уже).

2a. При установке пакета производится попытка создать пользователя с ними же

&gt; 2. При установке пакета производится попытка создать пользователя, но уже без
&gt; привязки к UID/GID (нужно убрать привязку).
&gt; Кроме того, это надо решать в рамках полиси для всех пакетов, создающих
&gt; псевдопользователей. А иначе мы просто видоизменим бардак, а не решим проблему.

Так вот в полиси я всерьёз собираюсь стоять на том, что uid/gid для псевдо,
имеющих данные, _надо_ фиксировать и пытаться создавать именно одинаковые.  С
фолбэком на какие попало (не взрываться же).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68521</commentid>
    <comment_count>16</comment_count>
    <who name="Denis Smirnov">mithraen</who>
    <bug_when>2008-04-17 13:50:52 +0400</bug_when>
    <thetext>Так сейчас что делать будем?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68524</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2008-04-17 14:29:57 +0400</bug_when>
    <thetext>(In reply to comment #16)
&gt; Так сейчас что делать будем?
Предлагаю: создать_группу_и_пользователя_с_46 || создать_каких_выйдет</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68600</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Bochkaryov">misha</who>
    <bug_when>2008-04-18 14:44:09 +0400</bug_when>
    <thetext>(In reply to comment #17)
&gt; &gt; Так сейчас что делать будем?
&gt; Предлагаю: создать_группу_и_пользователя_с_46 || создать_каких_выйдет

Вполне нормальное решение, пока с полиси не определились.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68630</commentid>
    <comment_count>19</comment_count>
    <who name="Denis Smirnov">mithraen</who>
    <bug_when>2008-04-19 00:27:34 +0400</bug_when>
    <thetext>Шлите патчи :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102457</commentid>
    <comment_count>20</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2009-10-31 12:24:54 +0300</bug_when>
    <thetext>postgresql-common-1.0-alt6 -&gt; sisyphus:

* Sat Oct 31 2009 Denis Smirnov &lt;mithraen@altlinux&gt; 1.0-alt6

- fix user/group creation (ALT#15268)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>