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 не виноват.
next prev parent 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