> > Sergey Vlasov пишет: > > >> > > Вероятно, где-то в правилах (/etc/udev/rules.d/*.rules) используются >> > > пользователи или группы, отсутствующие в локальных файлах passwd и >> > > group. .... $ grep tss /etc/udev/rules.d/70-permissions.rules KERNEL=="tpm*", MODE="0600", OWNER="tss", GROUP="tss" http://bugs.gentoo.org/show_bug.cgi?id=99564 в чистом виде. Также отсутствуют группы tape, video, rdma, nvram; группа scanner, скорее всего, появляется слишком поздно.
Created attachment 1576 [details] комментирует несуществующие группы в 70-permissions.rules
Created attachment 1577 [details] несущесвующие группы в 50-udev-default.rules
Пока не решено кто должен эти группы создавать -просто заккоментируйте их в правилах для udev. соотвествующие diff приложены.
есть ещё 1 несущесвующая группа, которую idev пытается искать во всех доступных местах. эта группа в правилах не фгурирует,но udevd, так как не может приконектиться к ldap не может развернуть /dev. Хотя эта группа не является для него обязательной - nogroup. В общем вот список групп которых не хватает udevd (возможно ещё всплывут): tape video rdma nvram scanner fuse nogroup
Группа nogroup прибита гвоздями в исходниках vol_id (там после открытия устройства привилегии сбрасываются на nobody:nogroup). У нас группы nogroup нет, но зато есть группа nobody.
(In reply to comment #4) > tape > video > rdma > nvram Пока не знаю, что делать с этим. > scanner 70-permissions.rules:BUS=="scsi", SYSFS{type}=="3", SYSFS{vendor}=="HP", GROUP="scanner" 70-permissions.rules:BUS=="scsi", SYSFS{type}=="6", GROUP="scanner" Вероятно, эти правила необходимо перенести в пакет libsane, где и создаётся группа scanner. > fuse 40-fuse.rules:KERNEL="fuse", NAME="%k", MODE="0666" 70-permissions.rules:KERNEL=="fuse", GROUP="fuse" Таким образом, правило в пакете udev (70-permissions.rules) можно просто выбросить - всё равно без пакета fuse файл устройства /dev/fuse бесполезен, а после установки этого пакета файл доступен всем, и задавать группу смысла нет.
(In reply to comment #5) > Группа nogroup прибита гвоздями в исходниках vol_id (там после открытия > устройства привилегии сбрасываются на nobody:nogroup). У нас группы nogroup > нет, но зато есть группа nobody. Хм...найти где оно прибито в исходниках и перебить на nobody?
В Mandriva эту проблему обошли путём использования в udev встроенного кода для поиска пользователей и групп непосредственно в файлах /etc/passwd и /etc/group - т.е., nsswitch.conf полностью игнорируется.
(In reply to comment #8) > В Mandriva эту проблему обошли путём использования в udev встроенного кода для > поиска пользователей и групп непосредственно в файлах /etc/passwd и /etc/group - > т.е., nsswitch.conf полностью игнорируется. Думаю в данном случае это самый приемлимый вариант. Каким образом включается этот механизм?
(In reply to comment #9) > Думаю в данном случае это самый приемлимый вариант. Каким образом включается > этот механизм? Там запатчили udev_libc_wrapper.c, чтобы __OWN_USERDB_PARSER__ определялся всегда.
Предлагается следующее решение: - Правило для fuse удаляется из пакета udev (сейчас оно всё равно не работает; работающее правило будет в пакете fuse после исправления в нём bug #9874). - Правило для /dev/tpm* (пользователь и группа tss) также удаляется из пакета udev. В настоящее время в Сизифе нет средств для работы с устройствами TPM; когда такой пакет появится, правило можно будет добавить туда (в http://bugs.gentoo.org/show_bug.cgi?id=99564 эта проблема была решена именно так). - Правила, использующие группу rdma, также удаляются из пакета udev. Средств для работы с RDMA в Сизифе, насколько мне известно, тоже нет. - Правило для /dev/nvram, где используется группа nvram, тоже удаляется. - Правила для SCSI-сканеров, использующие группу scanner, перемещаются из пакета udev в пакет libsane, на который по этому поводу повешен bug #9889. - Группа tape пока заменяется на disk (такие же права были ранее в статическом dev). - Группа video заменяется на radio (эта группа и сейчас используется для /dev/video* и ещё нескольких видов устройств в настройках pam_console). - Группа nogroup, использующаяся в программе vol_id, заменяется на nobody.
(In reply to comment #11) > - Группа video заменяется на radio (эта группа и сейчас используется для > /dev/video* и ещё нескольких видов устройств в настройках pam_console). Вообще с группой video сейчас наибольший бардак - туда засунуты и разнообразные устройства для ввода видео (video4linux, dv1394, video1394, raw1394, DVB), и фреймбуферы (/dev/fb*), и agpgart (но у него права 0600, так что группа тут вообще не имеет особого значения), и nvidia* (это вообще можно выбросить - последние версии драйверов nvidia не создают устройства через udev), и даже /dev/input/event*, принадлежащие DVB-картам или имеющие "IR" в имени. В таком виде группа video, даже если её создать, ни на что не годится.
(In reply to comment #9) > Думаю в данном случае это самый приемлимый вариант. От разработчиков udev пришёл подарок в виде версии 098: ... The built-in /etc/passwd /etc/group parser is removed, we always depend on getpwnam() and getgrnam() now. ... Так что несуществующие группы в любом случае придётся вычищать.
Проблема исправлена в udev-097-alt1: - vol_id теперь использует nobody:nobody; - большинство отсутствовавших групп убрано из правил; - группа video создаётся при установке пакета udev - теперь эта группа назначается для устройств захвата видео (прочие устройства, в частности, DRI и agpgart, из этой группы убраны).
(In reply to comment #13) > От разработчиков udev пришёл подарок в виде версии 098: > The built-in /etc/passwd /etc/group parser is removed, we always depend on > getpwnam() and getgrnam() now. Не слишком ли много зависимостей (косвенных) для претендующего на системный инструмент куска эээ... кода? :(