Решено: Создание системного пользователя...

Knoppix

Модераторы: Warderer, Модераторы разделов

prof
Сообщения: 119
ОС: gentoo

Решено: Создание системного пользователя...

Сообщение prof »

Что-то прочтение maint-guide-ru не пролило свет на вопрос: как создать системного пользователя при установке пакета.

Может кто-то знаком с этой темой и что-то подскажет?
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Решено: Создание системного пользователя...

Сообщение BIgAndy »

prof писал(а):
09.07.2011 17:40
как создать системного пользователя при установке пакета.

WTF "Системный пользователь" и чем он по сути у вас должен отличаться от не очень системного?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Решено: Создание системного пользователя...

Сообщение watashiwa_daredeska »

prof писал(а):
09.07.2011 17:40
Может кто-то знаком с этой темой и что-то подскажет?
А посмотреть существующие пакеты, которые создают системных пользователей? Вообще, для этого используется useradd -r, насколько я знаю. Можно и adduser, но он больше для ручного использования и пакет adduser — important, а passwd (в котором useradd) — required.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21347
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Решено: Создание системного пользователя...

Сообщение Bizdelnick »

BIgAndy писал(а):
09.07.2011 18:58
WTF "Системный пользователь" и чем он по сути у вас должен отличаться от не очень системного?

UID<1000.
Ваш К.О.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Решено: Создание системного пользователя...

Сообщение eddy »

Bizdelnick писал(а):
09.07.2011 20:26
UID<1000.

Откуда такая цифра? В мандриве, например, пользователи начинаются с номера 500...
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Решено: Создание системного пользователя...

Сообщение BIgAndy »

Bizdelnick писал(а):
09.07.2011 20:26
UID<1000.
Ваш К.О.

O_O
Я, видимо на всех своих машинах создаю искоючительно системных пользователей, ибо adduser по умолчнию создаёт с UID>500 .
500<UID<1000

Я еще могу понять "системного" это где shell в /dev/null перенаправлен.. И то это не догма.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21347
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Решено: Создание системного пользователя...

Сообщение Bizdelnick »

eddy писал(а):
09.07.2011 20:39
Откуда такая цифра? В мандриве, например, пользователи начинаются с номера 500...

А в Дебиане с 1000 (раньше в Мандриве ЕМНИП было так же). Хотя UID'ы наличествующих у меня системных юзеров и до 200 не доходят.

BIgAndy писал(а):
09.07.2011 20:51
Я, видимо на всех своих машинах создаю искоючительно системных пользователей, ибо adduser по умолчнию создаёт с UID>500 .

man adduser.conf
man login.defs
Как дистростроители решили, так и создаёт.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Решено: Создание системного пользователя...

Сообщение alv »

Bizdelnick писал(а):
09.07.2011 20:26
BIgAndy писал(а):
09.07.2011 18:58
WTF "Системный пользователь" и чем он по сути у вас должен отличаться от не очень системного?

UID<1000.
Ваш К.О.

UID системного и не очень системного пользователя в разных дистрах бывает разный: где не очень начинается с 500, где с 1000, а во FreeBSD так вообще с 1001. И в общем случае UID'ы обоих могут быть произвольными, кроме 0 в Linux'е или 1 в BSD.
А отличие системных (или, как их называл Паскаль, псевдопользователей) в том, что они не имеют шелла и домашнего каталога в собственном смысле слова.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21347
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Решено: Создание системного пользователя...

Сообщение Bizdelnick »

alv писал(а):
09.07.2011 21:07
UID системного и не очень системного пользователя в разных дистрах бывает разный

О чём я и говорю. Но мы же в дебиановском разделе вроде. (-:
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Решено: Создание системного пользователя...

Сообщение watashiwa_daredeska »

alv писал(а):
09.07.2011 21:07
А отличие системных (или, как их называл Паскаль, псевдопользователей) в том, что они не имеют шелла
У меня почти все системные пользователи имеют shell.

alv писал(а):
09.07.2011 21:07
и домашнего каталога в собственном смысле слова
А что такое «собственный смысл» «слова» «домашний каталог»? У меня вот некоторые системные пользователи вполне себе имеют домашний каталог. На самом деле, домашний каталог есть у всех, но у некоторых этот каталог обладает смыслом, вполне похожим на домашний каталог несистемных пользователей: например, пользователь www-data с домашним каталогом в /var/www. Это значит, что www-data — не системный пользователь? Или как?
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Решено: Создание системного пользователя...

Сообщение alv »

Bizdelnick писал(а):
09.07.2011 21:09
Но мы же в дебиановском разделе вроде.

Я думаю, что и в Дебиане можно сделать системного пользователя с UID 1500 и обычного - с UID 499
Вот только это и нафиг никогда не нужно, верно?
На самом деле я с давних пор слежу, чтобы мой главный рабочий аккаунт всегда имел UID 1001 - тогда его данные можно без лишних телодвижений таскать между любыми дистрами и ОСями. А системные UID'ы - кого они волнуют?
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Решено: Создание системного пользователя...

Сообщение alv »

watashiwa_darede... писал(а):
09.07.2011 21:17
У меня почти все системные пользователи имеют shell.

И какой, интересно? Обычно это поле или пусто, или там стоит /sbin/nologin, что, согласитесь, шеллом не является.
watashiwa_darede... писал(а):
09.07.2011 21:17
А что такое «собственный смысл» «слова» «домашний каталог»?

/home/username или /usr/home/username
watashiwa_darede... писал(а):
09.07.2011 21:17
например, пользователь www-data с домашним каталогом в /var/www.

Я, честно говоря, не понимаю смысла этого: Фря и большинство "простых" Линуксов прекрасно живут без этого, в них соответствующее поле пустое. Это редхатоиды и дебианоиды выпендриваются :)
Спасибо сказали:
neol
Сообщения: 600
ОС: Debian Stable

Re: Решено: Создание системного пользователя...

Сообщение neol »

prof писал(а):
09.07.2011 17:40
как создать системного пользователя при установке пакета.

Packages which need a user or group, but can have this user or group allocated dynamically and differently on each system, should use adduser --system to create the group and/or user.
http://www.debian.org/doc/debian-policy/ch...sys.html#s9.2.2
Спасибо сказали:
prof
Сообщения: 119
ОС: gentoo

Re: Решено: Создание системного пользователя...

Сообщение prof »

watashiwa_daredeska писал(а):
09.07.2011 20:19
А посмотреть существующие пакеты, которые создают системных пользователей?
Искал, в частности переворошил postgresql, т.к. собирал его из исходников, но намёков на то место где "возникает" пользователь postgres так и не нашёл. Потому и хотел, что бы высказались те кто пробовал.

2All, ну и нафлудили, системный тот, у которого, как правило, нет пароля, и с его uid'ом работают сервисы. Но тут вопрос не столько в значении идентификатора, сколько в том, какие механизмы для этого существуют в пакетной системе debian.
Спасибо сказали:
neol
Сообщения: 600
ОС: Debian Stable

Re: Решено: Создание системного пользователя...

Сообщение neol »

prof писал(а):
09.07.2011 23:18
Искал, в частности переворошил postgresql, т.к. собирал его из исходников, но намёков на то место где "возникает" пользователь postgres так и не нашёл. Потому и хотел, что бы высказались те кто пробовал.

Гляньте postinst скрипт.

PS А нелепое обсуждение определения системного пользователя предлагаю вынести за рамки этой темы.
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: Решено: Создание системного пользователя...

Сообщение Goodvin »

neol писал(а):
09.07.2011 23:38
PS А нелепое обсуждение определения системного пользователя предлагаю вынести за рамки этой темы.
А это кто решил, что обсуждение "нелепое"?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21347
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Решено: Создание системного пользователя...

Сообщение Bizdelnick »

alv писал(а):
09.07.2011 22:57
watashiwa_darede... писал(а):
09.07.2011 21:17
У меня почти все системные пользователи имеют shell.

И какой, интересно? Обычно это поле или пусто, или там стоит /sbin/nologin, что, согласитесь, шеллом не является.

У меня в большинстве случаев /bin/sh, у многих /bin/false, а у одного даже /bin/bash. Зачем - не знаю.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Решено: Создание системного пользователя...

Сообщение watashiwa_daredeska »

alv писал(а):
09.07.2011 22:57
И какой, интересно?
/bin/sh. У несистемных пользователей shell, как правило, /bin/bash.

alv писал(а):
09.07.2011 22:57
Обычно это поле или пусто, или там стоит /sbin/nologin, что, согласитесь, шеллом не является.
Пусто в Debian'е не бывает, а /bin/nologin я шеллом и не считаю, поэтому и указал: «почти все».

alv писал(а):
09.07.2011 22:57
Я, честно говоря, не понимаю смысла этого
Смысл в том, что если от имени системного пользователя могут запускаться программы, то эти программы могут расчитывать на наличие домашнего каталога и конфигурации в нем, или еще каким образом использовать его (некоторые ftp-серверы, например, используют его как document root). И домашний каталог совершенно не обязан быть в /home или /usr/home, это всего лишь соглашение, на которое НЕЛЬЗЯ рассчитывать в программах, нужно либо честно выколупывать home из /etc/passwd (и аналогов), либо использовать переменную $HOME.
Спасибо сказали:
prof
Сообщения: 119
ОС: gentoo

Re: Решено: Создание системного пользователя...

Сообщение prof »

neol писал(а):
09.07.2011 23:38
Гляньте postinst скрипт.
Глядел, могу показать и Вам:

Код: Выделить всё

#!/bin/sh -e

VERSION=8.4


if [ "$1" = configure ]; then
    # fix init script stop priority on upgrades
    if dpkg --compare-versions "$2" le-nl "8.4~rc2-1"; then
        echo "Fixing init script priorities..."
        for l in 0 1 6; do
            old=/etc/rc$l.d/K19postgresql-8.4
            new=/etc/rc$l.d/K21postgresql-8.4
            if [ -e $old ] && ! [ -e $new ]; then
                mv $old $new
            fi
        done
    fi

    . /usr/share/postgresql-common/maintscripts-functions

    configure_version $VERSION "$2"
fi

#DEBHELPER#
Спасибо сказали:
Аватара пользователя
CycaHuH
Сообщения: 85
ОС: FreeBSD; Archlinux; Calculate

Re: Решено: Создание системного пользователя...

Сообщение CycaHuH »

prof писал(а):
10.07.2011 00:57
Глядел, могу показать и Вам

Плохо глядел

Код: Выделить всё

if [ "$1" = configure ]; then
    # Make sure the administrative user exists
    if ! getent passwd postgres > /dev/null; then
        adduser --system --quiet --home /var/lib/postgresql --no-create-home \
            --shell /bin/bash --group --gecos "PostgreSQL administrator" postgres
    fi
Спасибо сказали:
neol
Сообщения: 600
ОС: Debian Stable

Re: Решено: Создание системного пользователя...

Сообщение neol »

prof писал(а):
10.07.2011 00:57
Глядел, могу показать и Вам:

Глядели не там, смотрите postgresql-common

Код: Выделить всё

head -n 15 postgresql-common.postinst
#!/bin/sh

set -e
. /usr/share/debconf/confmodule
db_stop

SSL_ROOT=/etc/postgresql-common/root.crt

if [ "$1" = configure ]; then
    # Make sure the administrative user exists
    if ! getent passwd postgres > /dev/null; then
        adduser --system --quiet --home /var/lib/postgresql --no-create-home \
            --shell /bin/bash --group --gecos "PostgreSQL administrator" postgres
    fi

Вообще вы не самый удачный пакет для разбора выбрали, лучше что-то попроще.

UPD Например openssh, Там пакеты из одного исходника собираются, так что все лежит в аккуратной кучке.
Спасибо сказали:
prof
Сообщения: 119
ОС: gentoo

Re: Решено: Создание системного пользователя...

Сообщение prof »

Понятно. Всем спасибо!
Спасибо сказали: