[devel] TAG="uaccess": possible BUG in systemd-udevd (was: /dev/cdrom)

Paul Wolneykien manowar на altlinux.org
Сб Сен 28 01:34:09 MSK 2024


В Fri, 27 Sep 2024 13:57:31 +0300
Paul Wolneykien <manowar на altlinux.org> пишет:

> Обращаю внимание, что документация про "uaccess" есть у RedHat и у
> Астры:
> 
>   * https://wiki.astralinux.ru/pages/viewpage.action?pageId=217187404
>   * https://access.redhat.com/articles/3148751
> 
>   Я пробовал искать слово "uaccess" по сайту docs.altlinux.org, но оно
> не нашлось. :(
> 
>   Устранить данный эффект правильней всего созданием переопределяющего
> (override) файла в /etc/udev/rules.d/, обязательно с более поздним
> индексом, чем 70-*, например 99-uacess-override.rules и в нём удалить
> тег "uaccess" с устройства (в конце письма будет пример).

  Обнаружил, что рецепт удаления тега "uaccess" через TAG-="uaccess"
ведёт себя нестабильно. Если систему перезагрузить штатно, то
":uaccess:" не попадает в CURRENT_TAGS и setfacl /dev/sr0 тоже не
выполняется (ACL на устройство не добавляется). Однако, если вручную
вызвать:

    udevadm trigger /dev/sr0

то, хотя ":uaccess:" также не попадает в CURRENT_TAGS (но теги идут в
ином порядке), однако setfacl /dev/sr0 в этом случае выполняется (!),
добавляя ACL. Мне это очень напоминает race. Это можно резюмировать
так:

  1. наблюдается не одинаковый эффект от работы правил udev при
загрузке системы и при trigger (порядок тегов изменяется);

  2. несмотря на видимое отсутствие ":uaccess:" в CURRENT_TAGS,
ACL на устройство выдаётся пользователю, совершившему вход в вистему
(setfacl вызывается).


Подробная информация о списке рассылки Devel