Summary: | alterator-ports-access: Не работает режим доступа | ||||||
---|---|---|---|---|---|---|---|
Product: | Branch p10 | Reporter: | Anton Shevtsov <shevtsov.anton> | ||||
Component: | alterator-ports-access | Assignee: | manowar <manowar> | ||||
Status: | ASSIGNED --- | QA Contact: | manowar <manowar> | ||||
Severity: | normal | ||||||
Priority: | P5 | CC: | manowar, pikone | ||||
Version: | не указана | ||||||
Hardware: | x86 | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Anton Shevtsov
2023-01-13 08:41:20 MSK
Сценарий воспроизведения может быть такой Пользователи 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-устройство. |