Summary: | Невозможно запустить flatpak-приложения, которые требуют непривилегированные пользовательские пространства (обычно это приложения на основе Chromium, включая Electron) | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Сергей Бессонов <s> | ||||||
Component: | bubblewrap | Assignee: | Yuri N. Sedunov <aris> | ||||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||||
Severity: | normal | ||||||||
Priority: | P5 | CC: | aen, antohami, aris, armatik, delphicoder, ghgh2222, glebfm, lav, ldv, nfsmobile, oleg, rider, rimkamix, zerg, zhek_wh | ||||||
Version: | unstable | ||||||||
Hardware: | x86_64 | ||||||||
OS: | Linux | ||||||||
See Also: | https://bugzilla.altlinux.org/show_bug.cgi?id=51700 | ||||||||
Attachments: |
|
Description
Сергей Бессонов
2023-06-28 20:30:21 MSK
Что-то случилось и сегодня Brave запустился. Ставил Яндекс.браузер из flatpak чисто потестить, там бета-версия. Получил ту же ошибку. Ещё раз дёрнул chmod 0755 /usr/bin/bwrap и всё заработало. Проверил Brave - тоже запускается. kernel.unprivileged_userns_clone=1 в /etc/sysctl.d/50-bubblewrap.conf стоит давно. (Ответ для Сергей Бессонов на комментарий #1) > Что-то случилось и сегодня Brave запустился. Ставили бы через epm play brave и всё бы работало без всяких сложностей с изменением прав на системные файлы. Разумеется. Но баг-то остался. (Ответ для Сергей Бессонов на комментарий #0) > dpkg-statoverride --update --add root root 0755 /usr/bin/bwrap После chmod 775 /usr/bin/bwrap все работает как надо https://alt-gnome.wiki/flatpak.html#запуск-приложении Перевешиваю багу на bubblewrap. $ sudo chmod 0755 /usr/bin/bwrap $ /sbin/sysctl kernel.unprivileged_userns_clone kernel.unprivileged_userns_clone = 1 Ошибка на месте. Столкнулся с данной проблемой, перед тем как сформулировать обходное решение данной проблемы, хотел поблагодарить Романа Алифанова за то, что он подыскал нужный пакет, а именно sysctl-conf-users. Смотрите, что нужно сделать: 1. Установить пакет sysctl-conf-users. 2. Изменить права доступа: su - chmod 775 /usr/bin/bwrap. 3. Для вступления изменений в силу выйти из сессии или перезагрузить операционную систему. Браузер Brave запустится без уведомлений и ошибок. Прошу при сборке пакета изменить права файла /usr/bin/bwrap на 775. После внесения изменений и закрытия репорта со статусом «FIXED», релиз-менеджеры могут использовать данный пакет. Поясню: в некоторых продуктах операционных систем семейства «Альт», а также «Ximper Linux» можно выбрать во время установки Flatpak. Считаю, что при данном сценарии пользователь без дополнительных действий может установить, к примеру, браузер Brave. На brave свет клином сошелся? Так соберите его в Сизиф. "Is Brave open source? Yes. The Brave Browser is built on the open-source Chromium Web core and our own client code is released under the Mozilla Public License 2.0." (Ответ для rimkamix0@ на комментарий #6) > 1. Установить пакет sysctl-conf-users. Пакет sysctl-conf-userns, пропущена буква :-) (Ответ для Сергей Бессонов на комментарий #8) > (Ответ для rimkamix0@ на комментарий #6) > > 1. Установить пакет sysctl-conf-users. > > Пакет sysctl-conf-userns, пропущена буква :-) Это вредный пакет. Юрий Николаевич, здравствуйте, также выходит проблема с запуском Steam из Flatpak , ругается на права Скриншот из чата https://disk.yandex.ru/i/2_W4fdsKCZR5eQ Можно узнать Вашу позицию по данному поводу? Умолчания для bubblewrap, достаточные для большинства приложений, останутся прежними. Вы можете, как вариант, изучить control(8), написать скрипт управления для bubblewrap и запаковать его в отдельный пакет bubblewrap-control. Спасибо Created attachment 16305 [details] bwrap-control-conf-0.1-alt1.src.rpm (Ответ для Yuri N. Sedunov на комментарий #11) > Умолчания для bubblewrap, достаточные для большинства приложений, останутся > прежними. Вы можете, как вариант, изучить control(8), написать скрипт > управления для bubblewrap и запаковать его в отдельный пакет > bubblewrap-control. Добрый день, Юрий Николаевич. Почитал я за control ну и пошел экспериментировать. По факту я сделал файл скрипта bwrap а также файл конфиги 50-bubblewrap.conf как-того хочет флетпак (brave, хромиум), завернул это все в пакет поставил в систему, но не помогло. Вроде написал правильно... если я правильно все понял... На своей машине мне через control получилось дать такие права ls -l /usr/bin/bwrap -rwxr-xr-x 1 flatpak flatpak 72176 фев 28 2023 /usr/bin/bwrap вот только я пока экспериментировал, сразу не проверял запуски, и сказать по правде даже не знаю как я это получил... воспроизвести у меня на чистых виртуалках не получилось Вот решил набраться наглости, и попросить у Вас совета, либо подсказки, что я делаю не так... Заранее благодарю за ответ, с уважением. >
> На своей машине мне через control получилось дать такие права
> ls -l /usr/bin/bwrap
> -rwxr-xr-x 1 flatpak flatpak 72176 фев 28 2023 /usr/bin/bwrap
>
на моей машине с такими правами работает.. но не уверен что это правильно
Доброго времени суток. Поспав часа четыре, решил систематизировать и еще раз изложить свои мысли по правам Flatpak и запуску некоторых приложений таких как brave и chromium и тд.. Почитав за control я пошёл экспериментировать. По факту я сделал файл скрипта bwrap а также файл конфиги 50-bubblewrap.conf как-того хочет flatpak (brave, хромиум), завернул это все в пакет поставил в систему, но не помогло. Приложения также не стартуют.. В последней версии, назовём её так, я использовал такую конструкцию new_fmode public 755 root flatpak new_fmode restricted 700 root root Хотя я думаю это не правильно… но я пробовал и конструкцию new_fmode public 755 flatpak flatpak и new_fmode flatpak 755 flatpak flatpak … На своей машине я каким-то образом через control добился таких прав… ls -l /usr/bin/bwrap -rwxr-xr-x 1 flatpak flatpak 72176 фев 28 2023 /usr/bin/bwrap И у меня работают приложения Но воспроизвести на чистой виртуалке у меня не получилось, что на гном, что на кедах.. Учитывая, что я за ночь много перебрал вариантов, и я не всегда проверял запуск.. по этому без понятия каким образом и что я сделал. Но учитывая, что я это как-то сделал, то по моему мнению конструкцию файла bwrap считаю достаточной Также пробовал обзывать файл flatpak вместо bwrap Если я правильно понимаю, при обращении к /usr/bin/bwrap файл control должен смотреть кто обращается и давать права на файл bwrap пользователю или группе… фактически у flatpak и пользователь и группа одноимённая и = flatpak свои файлы я приложил во вложении я без понятия что ему надо.. Касательно своей машины допускаю, что у меня заработало из-за: 1. смены прав на bwrap 2. возможно ещё потому что у меня есть такое в машине /proc/sys/kernel/unprivileged_userns_clone но это как я лично считаю наверное не совсем безопасно Сергей, здравствуйте! Прошу прощения не знаю как Вас по отчеству. Добавил Вас к обсуждению, так как Вы делали sysctl-conf-userns Но даже если добавить данный пакет в систему, проблему это не решает, собственно я в Ваш спек и скрипт подглядел. Может быть у Вас будут советы, так как данная проблема воспроизводится на разных DE С уважением. Created attachment 16311 [details]
скрин шот
Юрий Николаевич, я все таки предлагаю Вам пересмотреть свою позицию и пересобрать пакет с другими правами.
Во вложении скриншот прав bwrap с Федоры
также как мне в общении объяснил разработчик LuxWine при обсуждении этого вопроса, цитата
"да и сам bwrap начинает работает по другому в таком случае
его разраб категорически не приветсвует suid bit"
..
Также логичнее будет сделать багу на добавление в пакет flatpak requires: sysctl-conf-users
и тогда можно будет забыть об этой проблеме.
Ну это мое скромное мнение, решать Вам
(Ответ для Aleksandr Shamaraev на комментарий #16) > sysctl-conf-userns > Но даже если добавить данный пакет в систему, проблему это не решает, (Ответ для Aleksandr Shamaraev на комментарий #17) > Также логичнее будет сделать багу на добавление в пакет flatpak requires: > sysctl-conf-users sysctl-conf-userns > и тогда можно будет забыть об этой проблеме. Так, решает или не решает? Ааа, на да. suid ещё убрать надо. (Ответ для Aleksandr Shamaraev на комментарий #16) > Может быть у Вас будут советы, так как данная проблема воспроизводится на > разных DE Нет советов. Если мантейнеру больше нравится SUID, то это его дело. (Ответ для Sergey V Turchin на комментарий #18) > Так, решает или не решает? Здравствуйте, проверял на регулярке на кедах [root@host-15 ~]# chmod -v 0755 /usr/bin/bwrap [root@host-15 ~]# apt-get install sysctl-conf-users [root@host-15 ~]# systemctl reboot после перезагрузки проблема с запуском flatpak приложений, того же brave решается. Все работает, как и говорил Женя Бородин почему я и чуть выше написал, что, как лично я думаю, логичнее добавить зависимость sysctl-conf-users к flatpak , ну и исправить права на bwrap, либо делать пакет управления для bubblewrap как предложил Юрий Николаевич, который пока лично у меня не получилось сделать. (Ответ для Aleksandr Shamaraev на комментарий #21) > sysctl-conf-users Не "USERS", а "USER NameSpace". (Ответ для Sergey V Turchin на комментарий #22) > (Ответ для Aleksandr Shamaraev на комментарий #21) > > sysctl-conf-users > Не "USERS", а "USER NameSpace". Да, прошу прощения не то скопировал sysctl-conf-userns The unofficial Steam Flatpak app now requires user namespaces to be enabled. Check that the bubble wrap executable used by Flatpack, usually //usr/bin/wrap or /usr/libexec/flatpak-wrap, is not setuid root. If the file /proc/sys/kernel/unprivileged_users_clone exists, check that it contains value 1. If the file /proc/sys/user/max_user_namespaces exists, check that its value is at least 100. For more details, please see: https://github.com/flatpak/flatpak/wiki/User-namespace-requirements steam не ставится *** Bug 51517 has been marked as a duplicate of this bug. *** Резюмирую на всякий: 1. установить sysctl-conf-userns 2. убрать SUID у /usr/bin/bwrap Как ни крути, а страдающих будет всё больше и больше. Для начала нужно хотя бы control прикрутить для снятия suid c /usr/bin/bwrap . Надеюсь, мантейнер справится. Всем здравствуйте, а у меня всеж вопрос, если позволите... А почему нельзя просто выставить права bwrap на 4775 либо как баге предлагали на 775 как впринципи везде сделано ? Хотя бы для ветки Сизиф, в Р10/Р11 можно и отрезанные права оставить, если уж нужна такая защищенность. С обязательным добавлением пакета sysctl-conf-userns полностью согласен Тов-щи страждущие, страдающие и им сочусвствующие, шлите патчи пачками. Да какие там патчи, просто права сделать 755 и добавить зависимость на sysctl-conf-userns (без которого ещё и chromium так себе работает). (Ответ для Aleksandr Shamaraev на комментарий #27) > Всем здравствуйте, а у меня всеж вопрос, если позволите... А почему нельзя > просто выставить права bwrap на 4775 либо как баге предлагали на 775 как > впринципи везде сделано ? Хотя бы для ветки Сизиф, в Р10/Р11 можно и > отрезанные права оставить, если уж нужна такая защищенность. > С обязательным добавлением пакета sysctl-conf-userns полностью согласен Да и в целом хотелось бы для домашних машинок чтобы просто все работало без лишних заморочек с правами, безопасностью и прочими танцами с бубнами) Граждане, смелее, выразите свои умозрительные представления в виде патча. (Ответ для Yuri N. Sedunov на комментарий #31) > Граждане, смелее, выразите свои умозрительные представления в виде патча. diff --git a/bubblewrap.spec b/bubblewrap.spec index d4a53c6..8699640 100644 --- a/bubblewrap.spec +++ b/bubblewrap.spec @@ -1,6 +1,6 @@ -%def_enable selinux +%def_disable selinux # "setuid" or "none" -%define priv_mode setuid +%define priv_mode none %if %priv_mode == "setuid" %def_disable userns %endif а control ? ну и выставление привилегий через setcap тоже не нужно, на мой взгляд (но это не точно и требует проверки). Добрый день. Ошибка ушла, спасибо. С уважением. Какой смысл было исправлять, если в в p11 это не пойдёт? #51700 (Ответ для Sergey V Turchin на комментарий #35) > Какой смысл было исправлять, если в в p11 это не пойдёт? #51700 Ну до плавного р11 ещё жить надо, а сейчас та пользуемся р10. |