rpm -qi alterator-ports-access Name : alterator-ports-access Version : 0.5.3 Release : alt1 DistTag : p10+296300.300.2.1 Architecture: noarch Install Date: Пт 13 янв 2023 10:03:49 Group : System/Configuration/Other Size : 38415 License : GPLv2+ Signature : RSA/SHA512, Чт 17 мар 2022 13:52:35, Key ID 42f343a2c7eb80f9 Source RPM : alterator-ports-access-0.5.3-alt1.src.rpm Build Date : Чт 17 мар 2022 13:52:34 Build Host : manowar-p10.hasher.altlinux.org Relocations : (not relocatable) Packager : Paul Wolneykien <manowar@altlinux.org> Vendor : ALT Linux Team Summary : alterator module to control ports access Description : Alterator module to control serial/USB ports access При базовом сценарии разрешить\запретить определенную флешку - все работает. Но если в правило внести опцию "режим доступа", чтобы четко определить пользователя и\или группу кто может (и в каком режиме) использовать флеш накопитель - эти настойки в правила udev сохраняются (OWNER, GROUP. MODE), но никаким образом не работают. Т.е. ограничив доступ к флешке пользователем, группой - тем не менее она все равно доступна всем.
Сценарий воспроизведения может быть такой Пользователи user1 user2 user3 user3 Группы Workers: user1,user2 Bosses: user3,user4 Две флешки Синяя Красная Задачи 1. Разрешить использование "синей" всем из Workers 2. Разрешить использование "красной" всем из Bosses Предполагается, что членам Workers будет недоступна "красная" флешка, а членам Bosses - "синяя"
Проверил воспроизводимость ошибки - ошибка воспроизводится Стенд: Alt Server 10.1 Версия пакетов: alterator-ports-access 0.5.3-alt1.1 Шаги для воспроизведения: 1. Установить пакеты: # apt-get install alterator-ports-access cheese -y 2. Перейти по адресу localhost:8080 и ввести пароль от пользователя root 3. Открыть раздел "Система" ⇢ "Контроль доступа к портам" 4. Внизу страницы нажать на "Включить контроль последовательных портов" и "Включить контроль USB-портов" 5. Подключить Web-камеру к машине и выполнить сканирование подключенных USB устройств 6. Выделить с помощью ЛКМ найденную камеру и "Разрешить выбранное устройство" 7. В списке разрешенных устройств нажать два раза ЛКМ по камере и в режиме доступа указать "Владелец (чтение)", а в поле "Владелец" указать "root" 8. "Сохранить параметры USB устройства" 9. Открыть Cheese Ожидаемый результат: Cheese сообщает, что не может найти устройство Фактический результат: Камера успешно работает, хотя по настроенному режиму доступа должна быть доступна только для пользователя root. То же самое поведение при использовании USB-Flash накопителя - настройка режима доступа никак не влияет на чтение или запись с устройства. Проверить воспроизводимость ошибки в sisyphus не удалось, так как пакет был удален в задании https://packages.altlinux.org/ru/tasks/323985/ с сообщением Final removal of 14+ weeks x86_64 ftbfs package
(Ответ для Evgeny Ivanitskiy на комментарий #2) > Фактический результат: > Камера успешно работает, хотя по настроенному режиму доступа должна быть > доступна только для пользователя root. А что с самим файлом камеры (/dev/video*)? Какие у него получаются права? Не может быть, чтобы был только root, а устройство было доступно. Другое дело, что нужно ещё исследовать, ограничивает ли правила udev доступ к файлам /dev/video*. Насколько я знаю, именно они обеспечивают доступ к камере.
(Ответ для Evgeny Ivanitskiy на комментарий #2) > Проверить воспроизводимость ошибки в sisyphus не удалось, так как пакет был > удален в задании https://packages.altlinux.org/ru/tasks/323985/ с сообщением > Final removal of 14+ weeks x86_64 ftbfs package Сейчас поправлю.
Скажите, пожалуйста, а режим доступа (owner, mode) точно тестировался по данной методике ранее? И работал? Просто проблема в том, что в отношении, к примеру, флешки, права на /dev/sd* формально устанавливаются правильно (root, -r------), но это никоим образом не ограничивает возможность монтирования флешки в файловую систему. И не может ограничить — это особенность архитектуры ОС. Поэтому я и уточняю.
> А что с самим файлом камеры (/dev/video*)? Какие у него получаются права? У файла /dev/video0 получаются следующие права: crw-rw----+ 1 root video 81, 0 июл 7 21:17 video > Скажите, пожалуйста, а режим доступа (owner, mode) точно тестировался по данной методике ранее Тестировалось только изменение прав у файлов /dev/sd*. Но проверка записи на такие устройства не производилась > но это никоим образом не ограничивает возможность монтирования флешки в файловую систему Однако же если включить контроль доступа USB-портов и не добавить устройство в список разрешенных, то накопитель вообще не определяется системой. В lsblk отсутствуют какие либо упоминания про накопитель; в /dev нет никаких других дисков, кроме системного. А после разрешения такого устройства, в lsblk и в /dev сразу же появляется новое устройство и накопитель автоматически монтируется. > формально устанавливаются правильно (root, -r------) Да, правильно. Вот такие права получаются у устройства и у раздела при установке режима доступа "Владелец (чтение)" и указания владельцем root: br-------- 1 root disk 8, 16 июл 7 21:29 sdb br-------- 1 root disk 8, 17 июл 7 21:32 sdb1 Но при таких правах на накопитель можно записывать файлы из другого пользователя. Приложил видео для подтверждения
Created attachment 13747 [details] Успешная запись на накопитель с доступом только root от другого пользователя
(Ответ для Evgeny Ivanitskiy на комментарий #6) > > но это никоим образом не ограничивает возможность монтирования флешки в файловую систему > Однако же если включить контроль доступа USB-портов и не добавить устройство > в список разрешенных, то накопитель вообще не определяется системой. Именно. Накопитель (/dev/sd*) в этом случае вообще отсутствует. Поэтому и монтировать нечего. > > формально устанавливаются правильно (root, -r------) > Да, правильно. Вот такие права получаются у устройства и у раздела при > установке режима доступа "Владелец (чтение)" и указания владельцем root: > br-------- 1 root disk 8, 16 июл 7 21:29 sdb > br-------- 1 root disk 8, 17 июл 7 21:32 sdb1 > > Но при таких правах на накопитель можно записывать файлы из другого > пользователя. Приложил видео для подтверждения Да не нужно было видео. Потому что: > > но это никоим образом не ограничивает возможность монтирования флешки в файловую систему Иными словами, при любых правах на /dev/sd* пользователь — обычный, любой, рядовой пользователь — сможет смонтировать флешку у себя на рабочем столе и даже записать на неё данные. Потому что: > это особенность архитектуры ОС. По крайней мере, с теми настройками Polkit и Udisks, которые есть у нас по умолчанию. Я постараюсь разобраться, есть ли тут какие-то ещё варианты. На первый взгляд, модуль alterator-ports-access мог бы заодно менять конфигурацию Polkit. Но может быть есть и другое решение. Однако, это в том, что касается флешек. А что с web-камерами — отдельный вопрос. И это не конец списка, мне кажется. Полагаю, есть ещё подсистемы, с которыми наш пользователь взаимодействует через ту или иную прослойку (допустим, принтеры!) и где, поэтому набор доступных пользователю операций никак не связан с правами на конечное USB-устройство.