Bug 9871 - Отсуствуют некоторые группы, котрые udev пытается прсивоить устройствам
Summary: Отсуствуют некоторые группы, котрые udev пытается прсивоить устройствам
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: udev (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-08-13 18:54 MSD by stalker
Modified: 2006-09-02 21:08 MSD (History)
3 users (show)

See Also:


Attachments
комментирует несуществующие группы в 70-permissions.rules (2.83 KB, patch)
2006-08-14 10:04 MSD, stalker
no flags Details | Diff
несущесвующие группы в 50-udev-default.rules (2.11 KB, patch)
2006-08-14 10:05 MSD, stalker
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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.
Не слишком ли много зависимостей (косвенных) для претендующего на системный
инструмент куска эээ... кода? :(