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