* [devel] tunctl & udev rules @ 2007-03-03 11:17 Nick S. Grechukh 2007-03-03 11:56 ` Sergey Vlasov 0 siblings, 1 reply; 3+ messages in thread From: Nick S. Grechukh @ 2007-03-03 11:17 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 1264 bytes --] я тут собрался делать дистрибутивное решение для qemu tun/tap networking, по ходу нарисовался control-скрипт для tunctl. обнаружилось что: [root@gns facilities]# grep -Rw tun /etc/udev/rules.d/ /etc/udev/rules.d/50-udev-default.rules:KERNEL=="tun", NAME="net/%k", MODE="0600" /etc/udev/rules.d/90-tun.rules:KERNEL=="tun", NAME="net/%k", GROUP="tun" MODE="0660" [root@gns facilities]# rpm -qf /etc/udev/rules.d/90-tun.rules tunctl-20060323-alt0 [root@gns facilities]# rpm -q --scripts tunctl preinstall scriptlet (through /bin/sh): groupadd -r tun postuninstall scriptlet (through /bin/sh): groupdel tun (тут сразу три баги - BLOCKER: /^groupdel.*$// ; ENH: s/tun/_tun/ ; TRIVIAL: s/groupadd/%groupadd/ ;) [root@gns facilities]# modprobe tun [root@gns facilities]# ll /dev/net/tun crw------- 1 root root 10, 200 Mar 2 23:00 /dev/net/tun конечно, закоментить строчку в 50-udev-default.rules могy, но это не наш метод. можно: а) поставить группу tun в дефолт самого удева, из пакета убрать рулезы. а кто создаст группу? б) убрать из udev правило для tun, чтобы работало нужно будет ставить пакет tunctl. да и так без него tun особо не поюзаешь - qemu разучился создавать их от пользователя. в) изменить в пакете номер правила на меньше 50. это грязно :) [-- Attachment #2: tun.control --] [-- Type: application/x-shellscript, Size: 1614 bytes --] ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [devel] tunctl & udev rules 2007-03-03 11:17 [devel] tunctl & udev rules Nick S. Grechukh @ 2007-03-03 11:56 ` Sergey Vlasov 2007-03-04 10:21 ` Nick S. Grechukh 0 siblings, 1 reply; 3+ messages in thread From: Sergey Vlasov @ 2007-03-03 11:56 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 3087 bytes --] On Sat, Mar 03, 2007 at 01:17:38PM +0200, Nick S. Grechukh wrote: > я тут собрался делать дистрибутивное решение для qemu tun/tap > networking, по ходу нарисовался control-скрипт для tunctl. > обнаружилось что: > > [root@gns facilities]# grep -Rw tun /etc/udev/rules.d/ > /etc/udev/rules.d/50-udev-default.rules:KERNEL=="tun", > NAME="net/%k", MODE="0600" > /etc/udev/rules.d/90-tun.rules:KERNEL=="tun", NAME="net/%k", > GROUP="tun" MODE="0660" Тут, кстати, есть ещё одна ошибка - пропущена запятая (текущая версия udev эту ошибку игнорирует, но могут и исправить). Похоже, эта же ошибка была скопирована и в скрипт для control. Кстати, из правила в 90-tun.rules можно просто убрать установку NAME. Проблема в том, что NAME в udev может устанавливаться только один раз; если обнаруживается, что NAME уже есть, udevd игнорирует не только повторную установку NAME, но и вообще всё правило. Можно оставить в пакете udev: KERNEL=="tun", NAME="net/%k", MODE="0600" а в 90-tun.rules правило, которое будет устанавливать только права: KERNEL=="tun", GROUP="root", MODE="0600" (вообще при использовании control рекомендуется ставить в файлах, входящих в пакет, наиболее жёсткие права - при первой установке пакета они будут исправлены вызовом %post_control на вариант, указанный в опции -s). > [root@gns facilities]# rpm -qf /etc/udev/rules.d/90-tun.rules > tunctl-20060323-alt0 > > [root@gns facilities]# rpm -q --scripts tunctl > preinstall scriptlet (through /bin/sh): > groupadd -r tun > postuninstall scriptlet (through /bin/sh): > groupdel tun > > (тут сразу три баги - BLOCKER: /^groupdel.*$// ; ENH: s/tun/_tun/ ; > TRIVIAL: s/groupadd/%groupadd/ ;) Да уж... В случае kqemu группа kqemu уже была внесена в пакет setup, поэтому _kqemu я делать не стал. В данном случае можно просто собрать новый пакет tunctl, содержащий %groupadd _tun в %pre, и проигнорировать действия с группой tun в старой сборке пакета (при обновлении эта группа удалится). > [root@gns facilities]# modprobe tun > > [root@gns facilities]# ll /dev/net/tun > crw------- 1 root root 10, 200 Mar 2 23:00 /dev/net/tun > > конечно, закоментить строчку в 50-udev-default.rules могy, но это не > наш метод. можно: > > а) поставить группу tun в дефолт самого удева, из пакета убрать > рулезы. а кто создаст группу? Группу-то может создать и сам udev (группа video там уже создаётся), а вот какой файл будет редактировать control? Нет, такой вариант не годится. > б) убрать из udev правило для tun, чтобы работало нужно будет ставить > пакет tunctl. да и так без него tun особо не поюзаешь - qemu > разучился создавать их от пользователя. Убирать не надо - пусть хотя бы имя устройства будет правильное независимо от того, установлен пакет tunctl или нет. Достаточно просто убрать установку NAME из того правила, которое ставит права. > в) изменить в пакете номер правила на меньше 50. это грязно :) И будет работать только за счёт побочного эффекта NAME, который в данном случае будет отключать стандартное правило. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [devel] tunctl & udev rules 2007-03-03 11:56 ` Sergey Vlasov @ 2007-03-04 10:21 ` Nick S. Grechukh 0 siblings, 0 replies; 3+ messages in thread From: Nick S. Grechukh @ 2007-03-04 10:21 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 278 bytes --] вот исправленный скрипт и руоезы. я изменил формулировку на can use interface owned by him, потом что *создавать* может в любом случае только рут - tunctl -u gns -t gnstap. а *использовать* может пользователь которого указали в -u && который имеет право записи в /dev/net/tun. [-- Attachment #2: tun-control --] [-- Type: application/x-shellscript, Size: 1450 bytes --] [-- Attachment #3: 90-tun.rules --] [-- Type: text/plain, Size: 41 bytes --] KERNEL=="tun", GROUP="root", MODE="0666" ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-03-04 10:21 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-03-03 11:17 [devel] tunctl & udev rules Nick S. Grechukh 2007-03-03 11:56 ` Sergey Vlasov 2007-03-04 10:21 ` Nick S. Grechukh
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/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 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git