ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
From: Arioch <the_Arioch@nm.ru>
To: sisyphus@altlinux.ru
Subject: [sisyphus] Re: hotplug, UDEV и пакетная запись  cd-r 
Date: Sun, 14 Aug 2005 18:23:15 +0400
Message-ID: <ddnk41$9qk$1@sea.gmane.org> (raw)
In-Reply-To: <20050813185136.GA23155@lks.home>

Konstantin A. Lepikhov пишет:

> причем тут скрипт запуска pktsetup и upstream pktcdvd патча

Так апстрим - патча?
Письмо было из трех строк. Первые две - про скрипт. Третья- про
апстрим. Каким фильтром догадаться, что апстрим - патча,а не скрипта?

Ладно, забудем про апстрим ?

В любом случае, на SourceForge сайтанет, а trylinux.com помре.

>>>писать длинные и бесполезные changelog'и и я умею. По-существу, вы можете
>>>внятно сформулировать чтовас не устраивает? 
>>copy-paste стиль скрипта. один и тот же код в разных местах.
> напишите свой.

Совсем-совсем новый свой с чистого листа? Пока не могу.

Для этого нужно разобраться
  1) как существующий скрипт взаимодействует с системой
  2) какие средства системы можно использовать
И договориться
   Что вообще должна делать идеальная обвязка и что не должна.

Как пример вопроса:
  2.1) раз check_kernel() в скрипте привязано к Alt Linux - можно ли
посчитать, что и остальные функции скрипта можно привязывать к Альту?
Тем паче, что судя по sf.net, апстрим не обновлялся уже год как ?




Пока я могу только изменятьсуществующий скрипт, не радикально, чтобы не
отломать существующее взаимодействие (о котором в добавок не всегда знаю
- иногда только догадываюсь).

А также показывать на странные на мой взгляд моменты, чтобы
  а) узнать что я ничего не понимаю и именно так и должно быть (и почему)
  б) узнать, что это действительно неправильно, и как должно было быть

>>Вывод на экран выбивается из стиля остальных скриптов.Точнее ввыод на 
>>экран просто "абы что-нибудь"
> меня этот вывод устраивает.

Иными словами "понаехало тут юзеров, воображжают что дистр для них.
Брысь в апстрим (LFS) " :-/

> поддержки packet writing в ядре?

Я не могу разделить претензии между скриптом, pktsetup, UDEV и ядром.
Иногда могу предполагать, но не более.


Начну с начала. Медленно и детально.

1) Пакетная запись включается только в результате настройки руками.
Сделать ее через hotplug/hal/udev - пока не могу. Не хватает информации.
1.1) То же про /media - automount/submount/supermount/ivmon

2) pktsetup может отключить устройство, которое он не создавал. Тем
самым оставив повисший файлустройства. Это баг.

3) создается два файла устройства - видимо второй создается UDEV'ом при
загрузке pktcdvd.ko. Это, вероятно,баг в настройке UDEV.
Есть несколько вопросов на тему "что именно происходит", но пока обойдемся.

4) Если при отработке скриптапроизойдет ошибка - скрипт об этом не
сообщит ни вызывающей программе if any (вернет $? == 0 - якобы нет
ошибки), ни администратору влоги, ни юзеру (вывод на консоль туманна
даже если юзер из терминалазапустит скрипт руками, а отсутствие цветных
[ OK ] | [ FAILED ]  не даст разглядеть при автозапуске из /etc/rc?.d )
fixed

5) права на файлы - три разных группы
brw-r-----  1 root root  251,  0 Авг 12 03:51 cdwriter
crw-rw----  1 root cdrom  10, 62 Авг 12 03:47 control
brw-rw----  1 root disk 251, 0 Авг 12 03:51 /dev/pktcdvd0

Кто назначает права на control? UDEV rules или pktcdvd.ko ?
По крайней мере файл создается при загрузке модуля.
Ладно, mea culpa, пороюсь в правилах UDEV - найду.

Опять возникает "вечный вопрос" - какая группа из множества в /etc/group
за что отвечает? Я так понимаю, что включать-выключать пакетную запись
могут юзеры из группы cdrom, а вот читать и писать ( по версииUDEV ) -
юзеры из группы disk. Т.е. вечныйвопрос привнес сюда неразбериху.

про cdwriter (GID == 0, root) скажу ниже

6) дублирование кода в скрипте - неужели нужно объяснять почему это
плохо ???

7) скрипт может загрузить pktcdvd.ko при старте - но не выгрузитего при
останове. Это м.б. не очень важно - но не красиво. Интуитивно всегда
предполагаешь, что при остановке демона за ним все почищается и система
становится в таком же виде, как до запуска.

7.1) запуск pktcdvd.ko мне кажется еще одним доказательством, что скрипт
оторвался от оригинала и привязан к обычаям AltLinux (подробнее - ниже)

7.2) я понимаю логику грузить этот модуль в случае service udftools
start. Однако service udftools status, service udftools #--help и
service udftools stop - тоже его запускают, хотя он пpи такой команде
заведомо не нужен

8) раз уж скрипт привязан к обычаям AltLinux, то и справка (при запуске
без параметров) должна выводиться с использованием /sbin/service


------------

Теперь про права.

zsh 31 [1] % ls -l /usr/bin/pktsetup
-rwxr-xr-x  1 root root 6960 Янв 24  2005 /usr/bin/pktsetup

Т.е. pktsetup должен запускаться не от рута, а от любого пользователя в
системе.

zsh 43 % ls /dev/pktcdvd -l
crw-rw----  1 root cdrom 10, 62 Авг 14 17:28 control

Взаимодействие с ядром при этом разрешено только группе cdrom.

Права на /dev/pktcdvd/cdwriter даются пользователю (успешно)
запустившему pktsetup - любому изгруппы cdrom

Значит скрипт udftools ( а именно он запускает pktsetup ) предназначен
авторами-апстримщиками длязапуска от любого пользователя. Так ли это?
zsh 45 % ls -l /etc/init.d/udftools
-rwxr-xr-x  1 root root 5081 Авг 12 17:44 /etc/init.d/udftools

Именно так! Права - идентичныправам на сам pktsetup.
Правда, если бы апстрим привязывал пакетную запись к группе cdrom,
вероятно права были бы  -rwxr-xr-x root cdrom
Т.е. вероятно - эти права назначает UDEV. (проверил - действительно)

Однако в AltLinux скрипт должен запускаться от root'a - аначе не
отработает insmod
Это значит, что юзер не сможет воспользоваться диском - ему просто н
разрешат. Впрочем, если он вдруг входит в группу root, то сможет диск
читать.

Т.е. либо скрипт должен иметьвозможность запускаться
непривелигерованным юзером - либо после создания устройства ему нужно
делать chmod & chown


---------------  Теперь про UDEV:

<bdv@localhost:/etc/udev/rules.d>  zsh/2 13 [2] %     grep pkt *.rules
50-alt.rules:KERNEL=="pktcdvd", NAME="pktcdvd/control", GROUP="cdrom",
         MODE="0660"
50-alt.rules:KERNEL=="pktcdvd[0-9]*", SYMLINK+="pktcdvd/%n",
	GROUP="disk"

Исходя из этого, я думаю что:
   1) именно UDEV намеренно раздает разные права на cpntrol и на сам
диск.  Видимо, группа cdrom - это те, кто могут физически втыкать и
вытыкать диски. Кто такая группа disk - мне, юзеру, не известно :-(
Не понятно - почему группа ставится не cdwriter - ведь по сути это
запись дисков ? Это вопрос к UDEV (rider ?)

   2) тем не менее дублирующиеся блочные устройства создает не UDEV.
Вероятно /dev/pktcdvd0 создает pktcdvd.ko, а /dev/pktcdvd/cdwriter
создает pktsetup. Бага относится к кому-то из них, в зависимости от
взглядов автора/мейнтейнера кто их них должен создавать файл устройства.

Я зря поверил
> багу на удефф. pktsetup не виноват.








  reply	other threads:[~2005-08-14 14:23 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-09 23:30 [sisyphus] hotplug и пакетная запись cd-r - просто вопpос Arioch
2005-08-10 21:00 ` [sisyphus] " Arioch
2005-08-11  8:29   ` Konstantin A. Lepikhov
2005-08-12 13:54     ` Arioch
2005-08-12 19:43       ` Konstantin A. Lepikhov
2005-08-13 11:02         ` Arioch
2005-08-13 18:51           ` Konstantin A. Lepikhov
2005-08-14 14:23             ` Arioch [this message]
2005-08-14 17:54               ` [sisyphus] Re: hotplug, UDEV и пакетная запись cd-r Konstantin A. Lepikhov
2005-08-14 23:24                 ` Arioch
2005-08-15  8:11                   ` Konstantin A. Lepikhov
2005-08-16 11:44                     ` Michael Shigorin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='ddnk41$9qk$1@sea.gmane.org' \
    --to=the_arioch@nm.ru \
    --cc=sisyphus@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git