Bug 9871

Summary: Отсуствуют некоторые группы, котрые udev пытается прсивоить устройствам
Product: Sisyphus Reporter: stalker <stalker>
Component: udevAssignee: Anton Farygin <rider>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: arseny, mike, shaba
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
комментирует несуществующие группы в 70-permissions.rules
none
несущесвующие группы в 50-udev-default.rules none

Description stalker 2006-08-13 18:54:24 MSD
> > 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,
скорее всего, появляется слишком поздно.
Comment 1 stalker 2006-08-14 10:04:17 MSD
Created attachment 1576 [details]
комментирует несуществующие группы в 70-permissions.rules
Comment 2 stalker 2006-08-14 10:05:39 MSD
Created attachment 1577 [details]
несущесвующие группы в 
50-udev-default.rules
Comment 3 stalker 2006-08-14 10:07:22 MSD
Пока не решено кто должен эти группы создавать -просто заккоментируйте их в 
правилах для udev. соотвествующие diff приложены.
Comment 4 stalker 2006-08-14 11:42:14 MSD
есть ещё 1 несущесвующая группа, которую idev пытается искать во всех доступных
местах. эта группа в правилах не фгурирует,но udevd, так как не может
приконектиться к ldap не может развернуть /dev. Хотя эта группа не является для
него обязательной - nogroup.

В общем вот список групп которых не хватает udevd (возможно ещё всплывут):
tape
video
rdma
nvram
scanner
fuse
nogroup


Comment 5 Sergey Vlasov 2006-08-15 19:40:19 MSD
Группа nogroup прибита гвоздями в исходниках vol_id (там после открытия
устройства привилегии сбрасываются на nobody:nogroup).  У нас группы nogroup
нет, но зато есть группа nobody.
Comment 6 Sergey Vlasov 2006-08-15 19:49:41 MSD
(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 бесполезен, а
после установки этого пакета файл доступен всем, и задавать группу смысла нет.
Comment 7 stalker 2006-08-16 10:23:33 MSD
(In reply to comment #5)
> Группа nogroup прибита гвоздями в исходниках vol_id (там после открытия
> устройства привилегии сбрасываются на nobody:nogroup).  У нас группы nogroup
> нет, но зато есть группа nobody.

Хм...найти где оно прибито в исходниках и перебить на nobody?
Comment 8 Sergey Vlasov 2006-08-16 22:28:21 MSD
В Mandriva эту проблему обошли путём использования в udev встроенного кода для
поиска пользователей и групп непосредственно в файлах /etc/passwd и /etc/group -
т.е., nsswitch.conf полностью игнорируется.
Comment 9 stalker 2006-08-16 23:02:41 MSD
(In reply to comment #8)
> В Mandriva эту проблему обошли путём использования в udev встроенного кода для
> поиска пользователей и групп непосредственно в файлах /etc/passwd и /etc/group -
> т.е., nsswitch.conf полностью игнорируется.

Думаю в данном случае это самый приемлимый вариант. Каким образом включается
этот механизм?
Comment 10 Sergey Vlasov 2006-08-16 23:15:43 MSD
(In reply to comment #9)
> Думаю в данном случае это самый приемлимый вариант. Каким образом включается
> этот механизм?

Там запатчили udev_libc_wrapper.c, чтобы __OWN_USERDB_PARSER__ определялся всегда.
Comment 11 Sergey Vlasov 2006-08-17 20:05:46 MSD
Предлагается следующее решение:

- Правило для 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.
Comment 12 Sergey Vlasov 2006-08-17 20:51:55 MSD
(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, даже если её создать, ни на что не годится.
Comment 13 Sergey Vlasov 2006-08-23 10:31:31 MSD
(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.
...

Так что несуществующие группы в любом случае придётся вычищать.
Comment 14 Sergey Vlasov 2006-08-28 18:35:52 MSD
Проблема исправлена в udev-097-alt1:

- vol_id теперь использует nobody:nobody;
- большинство отсутствовавших групп убрано из правил;
- группа video создаётся при установке пакета udev - теперь эта группа
назначается для устройств захвата видео (прочие устройства, в частности, DRI и
agpgart, из этой группы убраны).
Comment 15 Michael Shigorin 2006-09-02 21:08:14 MSD
(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.
Не слишком ли много зависимостей (косвенных) для претендующего на системный
инструмент куска эээ... кода? :(