Bug 46690 - Невозможно запустить flatpak-приложения, которые требуют непривилегированные пользовательские пространства (обычно это приложения на основе Chromium, включая Electron)
Summary: Невозможно запустить flatpak-приложения, которые требуют непривилегированные ...
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: bubblewrap (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Yuri N. Sedunov
QA Contact: qa-sisyphus
URL:
Keywords:
: 51517 (view as bug list)
Depends on:
Blocks:
 
Reported: 2023-06-28 20:30 MSK by Сергей Бессонов
Modified: 2024-10-14 14:59 MSK (History)
15 users (show)

See Also:


Attachments
bwrap-control-conf-0.1-alt1.src.rpm (2.50 KB, application/x-rpm)
2024-06-22 20:20 MSK, Aleksandr Shamaraev
no flags Details
скрин шот (24.97 KB, image/png)
2024-06-23 16:37 MSK, Aleksandr Shamaraev
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Сергей Бессонов 2023-06-28 20:30:21 MSK
Устанавливаю Brave через flatpak, дистрибутив Sisyphus. При запуске получаю окно с ошибкой, текст ошибки такой:

======================================
Your Flatpak version does not support a feature needed for this application to run.

This generally happens when your distribution has unprivileged user namespaces disabled, or your Flatpak version is older than 1.8.

If the distro you are currently using is Debian or a derivative (Ubuntu, Mint, etc), you can run the following commands as root (you can enter a root shell via sudo -i):

dpkg-statoverride --update --add root root 0755 /usr/bin/bwrap
echo kernel.unprivileged_userns_clone=1 > /etc/sysctl.d/50-bubblewrap.conf
sysctl -w kernel.unprivileged_userns_clone=1

Enabling unprivileged user namespaces on other distros

If you installed a "hardened" security kernel, these also usually disable unprivileged user namespaces. They can be re-enabled by running the following as root (you can enter a root shell via sudo -i):

echo kernel.unprivileged_userns_clone=1 > /etc/sysctl.d/50-bubblewrap.conf
sysctl -w kernel.unprivileged_userns_clone=1

If ls -l /usr/bin/bwrap contains rws, then bwrap is also setuid. This can be removed, if present, via:

chmod u-s /usr/bin/bwrap

However, note that the permissions may be overridden on the next update of your distro's bubblewrap package.
======================================

P.S. Инструкция не помогает, ошибка та же.
Comment 1 Сергей Бессонов 2023-08-06 08:51:47 MSK
Что-то случилось и сегодня Brave запустился. 

Ставил Яндекс.браузер из flatpak чисто потестить, там бета-версия. Получил ту же ошибку. Ещё раз дёрнул chmod 0755 /usr/bin/bwrap и всё заработало.

Проверил Brave - тоже запускается.

kernel.unprivileged_userns_clone=1 в /etc/sysctl.d/50-bubblewrap.conf стоит давно.
Comment 2 Vitaly Lipatov 2024-02-08 21:22:07 MSK
(Ответ для Сергей Бессонов на комментарий #1)
> Что-то случилось и сегодня Brave запустился. 
Ставили бы через epm play brave и всё бы работало без всяких сложностей с изменением прав на системные файлы.
Comment 3 Сергей Бессонов 2024-02-09 10:39:06 MSK
Разумеется. Но баг-то остался.
Comment 4 Roman Alifanov 2024-02-19 10:31:25 MSK
(Ответ для Сергей Бессонов на комментарий #0) 
> dpkg-statoverride --update --add root root 0755 /usr/bin/bwrap

После chmod 775 /usr/bin/bwrap все работает как надо
https://alt-gnome.wiki/flatpak.html#запуск-приложении

Перевешиваю багу на bubblewrap.
Comment 5 Vitaly Lipatov 2024-04-12 09:09:44 MSK
$ sudo chmod 0755 /usr/bin/bwrap
$ /sbin/sysctl kernel.unprivileged_userns_clone
kernel.unprivileged_userns_clone = 1

Ошибка на месте.
Comment 6 Женя Бородин 2024-06-17 23:17:11 MSK
Столкнулся с данной проблемой, перед тем как сформулировать обходное решение данной проблемы, хотел поблагодарить Романа Алифанова за то, что он подыскал нужный пакет, а именно 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.
Comment 7 Yuri N. Sedunov 2024-06-18 09:49:12 MSK
На 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."
Comment 8 Сергей Бессонов 2024-06-18 11:54:16 MSK
(Ответ для rimkamix0@ на комментарий #6)
> 1. Установить пакет sysctl-conf-users.

Пакет sysctl-conf-userns, пропущена буква :-)
Comment 9 Yuri N. Sedunov 2024-06-18 12:20:10 MSK
(Ответ для Сергей Бессонов на комментарий #8)
> (Ответ для rimkamix0@ на комментарий #6)
> > 1. Установить пакет sysctl-conf-users.
> 
> Пакет sysctl-conf-userns, пропущена буква :-)

Это вредный пакет.
Comment 10 Aleksandr Shamaraev 2024-06-20 11:58:04 MSK
Юрий Николаевич, здравствуйте, также выходит проблема с запуском Steam из Flatpak , ругается на права 

Скриншот из чата 

https://disk.yandex.ru/i/2_W4fdsKCZR5eQ

Можно узнать Вашу позицию по данному поводу?
Comment 11 Yuri N. Sedunov 2024-06-20 13:39:29 MSK
Умолчания для bubblewrap, достаточные для большинства приложений, останутся прежними. Вы можете, как вариант, изучить control(8), написать скрипт управления для bubblewrap и запаковать его в отдельный пакет bubblewrap-control.
Comment 12 Aleksandr Shamaraev 2024-06-20 13:41:32 MSK
Спасибо
Comment 13 Aleksandr Shamaraev 2024-06-22 20:20:31 MSK
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

вот только я пока экспериментировал, сразу не проверял запуски, и сказать по правде даже не знаю как я это получил... воспроизвести у меня на чистых виртуалках не получилось

Вот решил набраться наглости, и попросить у Вас совета, либо подсказки, что я делаю не так... 

Заранее благодарю за ответ, с уважением.
Comment 14 Aleksandr Shamaraev 2024-06-22 20:23:13 MSK
> 
> На своей машине мне через control получилось дать такие права 
> ls -l /usr/bin/bwrap
> -rwxr-xr-x 1 flatpak flatpak 72176 фев 28  2023 /usr/bin/bwrap
> 
на моей машине с такими правами работает.. но не уверен что это правильно
Comment 15 Aleksandr Shamaraev 2024-06-23 03:48:22 MSK
Доброго времени суток.

Поспав часа четыре, решил систематизировать и еще раз изложить свои мысли по правам 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 
но это как я лично считаю наверное не совсем безопасно
Comment 16 Aleksandr Shamaraev 2024-06-23 03:59:34 MSK
Сергей, здравствуйте!
Прошу прощения не знаю как Вас по отчеству.

Добавил Вас к обсуждению, так как Вы делали sysctl-conf-userns

Но даже если добавить данный пакет в систему, проблему это не решает, собственно я в Ваш спек и скрипт подглядел.

Может быть у Вас будут советы, так как данная проблема воспроизводится на разных DE

С уважением.
Comment 17 Aleksandr Shamaraev 2024-06-23 16:37:31 MSK
Created attachment 16311 [details]
скрин шот

Юрий Николаевич, я все таки предлагаю Вам пересмотреть свою позицию и пересобрать пакет с другими правами.

Во вложении скриншот прав bwrap с Федоры

также как мне в общении объяснил разработчик LuxWine при обсуждении этого вопроса, цитата
 
"да и сам bwrap начинает работает по другому в таком случае
его разраб категорически не приветсвует suid bit"

..

Также логичнее будет сделать багу на добавление в пакет flatpak requires: sysctl-conf-users

и тогда можно будет забыть об этой проблеме.

Ну это мое скромное мнение, решать Вам
Comment 18 Sergey V Turchin 2024-06-24 11:32:15 MSK
(Ответ для Aleksandr Shamaraev на комментарий #16)
> sysctl-conf-userns
> Но даже если добавить данный пакет в систему, проблему это не решает,

(Ответ для Aleksandr Shamaraev на комментарий #17)
> Также логичнее будет сделать багу на добавление в пакет flatpak requires:
> sysctl-conf-users
sysctl-conf-userns
 
> и тогда можно будет забыть об этой проблеме.
Так, решает или не решает?
Comment 19 Sergey V Turchin 2024-06-24 11:44:39 MSK
Ааа, на да. suid ещё убрать надо.
Comment 20 Sergey V Turchin 2024-06-24 11:52:57 MSK
(Ответ для Aleksandr Shamaraev на комментарий #16)
> Может быть у Вас будут советы, так как данная проблема воспроизводится на
> разных DE
Нет советов. Если мантейнеру больше нравится SUID, то это его дело.
Comment 21 Aleksandr Shamaraev 2024-06-24 14:47:04 MSK
(Ответ для 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 как предложил Юрий Николаевич, который пока лично у меня не получилось сделать.
Comment 22 Sergey V Turchin 2024-06-24 14:51:04 MSK
(Ответ для Aleksandr Shamaraev на комментарий #21)
> sysctl-conf-users
Не "USERS", а "USER NameSpace".
Comment 23 Aleksandr Shamaraev 2024-06-24 14:53:54 MSK
(Ответ для Sergey V Turchin на комментарий #22)
> (Ответ для Aleksandr Shamaraev на комментарий #21)
> > sysctl-conf-users
> Не "USERS", а "USER NameSpace".

Да, прошу прощения не то скопировал
sysctl-conf-userns
Comment 24 kessys 2024-06-27 21:46:38 MSK
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 не ставится
Comment 25 Yuri N. Sedunov 2024-09-24 17:04:27 MSK
*** Bug 51517 has been marked as a duplicate of this bug. ***
Comment 26 Sergey V Turchin 2024-09-25 09:18:37 MSK
Резюмирую на всякий:
1. установить sysctl-conf-userns
2. убрать SUID у /usr/bin/bwrap

Как ни крути, а страдающих будет всё больше и больше.
Для начала нужно хотя бы control прикрутить для снятия suid c /usr/bin/bwrap . Надеюсь, мантейнер справится.
Comment 27 Aleksandr Shamaraev 2024-09-25 09:31:17 MSK
Всем здравствуйте, а у меня всеж вопрос, если позволите... А почему нельзя просто выставить права bwrap на 4775 либо как баге предлагали на 775 как впринципи везде сделано ? Хотя бы для ветки Сизиф, в Р10/Р11 можно и отрезанные права оставить, если уж нужна такая защищенность.
С обязательным добавлением пакета sysctl-conf-userns полностью согласен
Comment 28 Yuri N. Sedunov 2024-09-25 14:18:54 MSK
Тов-щи страждущие, страдающие и им сочусвствующие, шлите патчи пачками.
Comment 29 Anton Farygin 2024-09-25 14:23:58 MSK
Да какие там патчи, просто права сделать 755 и добавить зависимость на 
sysctl-conf-userns (без которого ещё и chromium так себе работает).
Comment 30 zhek_wh 2024-09-25 14:31:54 MSK
(Ответ для Aleksandr Shamaraev на комментарий #27)
> Всем здравствуйте, а у меня всеж вопрос, если позволите... А почему нельзя
> просто выставить права bwrap на 4775 либо как баге предлагали на 775 как
> впринципи везде сделано ? Хотя бы для ветки Сизиф, в Р10/Р11 можно и
> отрезанные права оставить, если уж нужна такая защищенность.
> С обязательным добавлением пакета sysctl-conf-userns полностью согласен

Да и в целом хотелось бы для домашних машинок чтобы просто все работало без лишних заморочек с правами, безопасностью и прочими танцами с бубнами)
Comment 31 Yuri N. Sedunov 2024-09-25 14:58:01 MSK
Граждане, смелее, выразите свои умозрительные представления в виде патча.
Comment 32 Антон Мидюков 2024-09-26 08:11:38 MSK
(Ответ для 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
Comment 33 Anton Farygin 2024-09-26 08:29:32 MSK
а control ?
ну и выставление привилегий через setcap тоже не нужно, на мой взгляд (но это не точно и требует проверки).
Comment 34 Aleksandr Shamaraev 2024-10-12 06:28:35 MSK
Добрый день.

Ошибка ушла, спасибо.

С уважением.
Comment 35 Sergey V Turchin 2024-10-14 10:50:49 MSK
Какой смысл было исправлять, если в в p11 это не пойдёт? #51700
Comment 36 kessys 2024-10-14 14:59:46 MSK
(Ответ для Sergey V Turchin на комментарий #35)
> Какой смысл было исправлять, если в в p11 это не пойдёт? #51700

Ну до плавного р11 ещё жить надо, а сейчас та пользуемся р10.