Автор Тема: Как запускать Chromium для гостевого пользователя?  (Прочитано 320 раз)

Оффлайн Mr.Madguy

  • Участник
  • *
  • Сообщений: 260
Рабочий стол Mate. При запуске Chromium под гостевым пользовтелем, он запускается только с главного меню. При запуске с рабочего стола или через терминал - выкидывает ошибку "Failed to move to new namespace". Запускается только с параметром "--no-sandbox". Можно это как то победить?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 448
  • Учиться .... Телепатами не рождаются, ими ....
А что значит только с главного меню ? Если так работает, то так и запускайте.
Скорей всего при других вариантах запуска от имени гостевого пользователя ему не хватает каких то-прав для создания песочницы.

Оффлайн Mr.Madguy

  • Участник
  • *
  • Сообщений: 260
А что значит только с главного меню ? Если так работает, то так и запускайте.
Скорей всего при других вариантах запуска от имени гостевого пользователя ему не хватает каких то-прав для создания песочницы.
Если бы это был бы мой компьютер - я бы так и запускал. Очевидно, что если мне нужны skel и гостевой пользователь - значит компьютер общественный и тут уже не мне решать, как с ним работать. Смысл в том, что вы запускаете Chromium из главного меню, где есть пункт, добавленный собственно при установке. Запускается. Вы щелкаете по этому пункту и нажимаете "Добавить на рабочий стол". По сути тот же ярлык, но с рабочего стола - не запускается. Аналогично, если вы добавите ярлык в skel. Сначала я думал, что какой-то косяк со skel. Но потом доперло, что дело именно в этом. Просто если skel по умолчанию, то ярлык только в главном меню, а оттуда он запускается. Вот я и думал, что дело не в этом.

Оффлайн gadfly7

  • Участник
  • *
  • Сообщений: 23
Вот я и думал, что дело не в этом.
Если это то, о чём я думаю, попробуйте сделать так.
Зайдите от гостя. Откройте в файловом менеджере папку его профиля. Сделайте видимыми скрытые файлы. Загляните в ~/.config/chromium/. Есть ли там файлы-ссылки SingletonCookie SingletonLock и SingletonSocket? Попробуйте удалить их и запустите Chromium. Предполагаю, что он запустится. Сделайте так и расскажите результат. Если будет запускаться нормально - подскажу решение. Если нет, - значит я ошибся.
« Последнее редактирование: 25.03.2026 12:09:20 от gadfly7 »

Оффлайн Mr.Madguy

  • Участник
  • *
  • Сообщений: 260
Если это то, о чём я думаю, попробуйте сделать так.
Зайдите от гостя. Откройте в файловом менеджере папку его профиля. Сделайте видимыми скрытые файлы. Загляните в ~/.config/chromium/. Есть ли там файлы-ссылки SingletonCookie SingletonLock и SingletonSocket? Попробуйте удалить их и запустите Chromium. Предполагаю, что он запустится. Сделайте так и расскажите результат. Если будет запускаться нормально - подскажу решение. Если нет, - значит я ошибся.
Я попробую. У меня у самого было подозрение, что когда я копировал skel, некий процесс Chromium мог быть в этот момент запущен. Все дело в том, как у меня настроен компьютер. По хорошему для копирования skel мне надо было перелогинится в другого пользователя. Но другой пользователь у меня системный и мне лень было проделывать всю процедуру по переключению его на обычного и потом обратно. И наверное зря.

Короче чтобы избежать еще каких-то косяков, надо наверное зайти по ssh с другого компьютера.

А так вообще кроме keyring что еще стоит удалить из skel? И можно как то победить косяк Firefox с ошибками "Расширение было добавлено другим пользователем"? Прикол в том, что эти ошибки выскакивают для файлов языков, из за чего при первом запуске Firefox не рустифицирован.
« Последнее редактирование: 25.03.2026 12:21:51 от Mr.Madguy »

Оффлайн gadfly7

  • Участник
  • *
  • Сообщений: 23
что еще стоит удалить из skel
Ну... скажем, в Яндекс Браузере есть совсем другая "привязка" - и он может вообще не запускаться в гостевых сеансах если сменить имя компьютера. Некоторые проги прописывают абсолютные пути и потом лезут не в свои каталоги.
ИМХО, откажитесь от гостевых сеансов. Я так долго "вылавливал" в них косяки. что плюнул - и организовал свою реализацию их функционала. Посмотрите здесь - на мой взгляд это решение лучше и гибче, чем просто гостевой сеанс.
У вас же на мой первый взгляд, в skel (скорее всего в /usr/share/guest-session, или откуда вы своего гостя делаете) есть привязки к другому профилю - и они переносятся в гостевой. И не факт, что только в chromium.
можно как то победить косяк Firefox с ошибками "Расширение было добавлено другим пользователем"?
У меня юзеры не пользуются Firefox. Поэтому я вообще не в курсе его заморочек. Но на мой первый взгляд причина проблемы примерно та же. Где-то в браузере имеется привязка к конкретному пользователю. Это определённая защита от злоумышленников, но в данном случае это помеха. Нужно искать эту привязку и вырезать.

Попробуй сделать так. Зайди от гостя и выполни:rm -rf ~/.mozilla/firefox/*/parent.lock
rm -rf ~/.mozilla/firefox/*/.parentlock
rm -rf ~/.mozilla/firefox/*/compatibility.ini
rm -rf ~/.mozilla/firefox/*/extensions.json
rm -rf ~/.mozilla/firefox/*/addons.json
И посмотри, решилась ли проблема с Firefox в текущем сеансе.

UPD: Ты меня на хорошую мысль сподвигнул. У меня не используется Firefox и потому я не предусматривал его особенности в своих скриптах, ориентировался только на chromium. А похоже, зря. Нужно будет пересмотреть и переделать.
« Последнее редактирование: 25.03.2026 14:32:33 от gadfly7 »

Оффлайн Mr.Madguy

  • Участник
  • *
  • Сообщений: 260
Блин. Я туплю. Сам же сказал, что такой же косяк на другом компьютере с голым skel. Так что дело скорее всего не в этом. Ну если не будет работать, пока оставлю так. Это все равно лучше, чем голый skel.

Оффлайн gadfly7

  • Участник
  • *
  • Сообщений: 23
Проблема, имхо в этом. В том, что при запуске браузера, в нём уже есть привязки, которые теоретически должны появиться как раз в результате этого запуска. Причина появления этих привязок может быть самой разной, но суть одна. Браузер считает, что файлы, которые ему представляют в качестве профиля, не принадлежат текущему пользователю. Их создал кто-то другой и файлы привязок ему об этом свидетельствуют. Ситуация с русиком FF говорит о том же самом. С точки зрения браузера языковые файлы - обычное дополнение. Но какая-то из привязок говорит браузеру, что это дополнение принадлежит кому-то другому. Нужно найти эту привязку, удалить - и браузер посчитает, что никто другой его не запускал и значит можно пометить "ничейный" языковый пакет своей привязкой и "скушать".
Вообще гостевые сеансы довольно забагованы. Потому, что большинство программ разрабатываются чтобы работать без учёта таких требований.
В своей реализации "псевдо гостевых сеансов" я удаляю из Chromium все известные мне привязки и тут же "затыкаю рот" браузеру, если при этом он пытается выполнить сценарий первого запуска. Прям в ближайшие дни постараюсь проверить привязки на продуктах Mozilla и если натолкнусь на бяки - посмотрю что там такое.

Оффлайн Mr.Madguy

  • Участник
  • *
  • Сообщений: 260
Да вряд ли. Еще раз. Такая же проблема с голым skel. В голом skel нет профиля Chromium. Искал инфо про ошибку "Failed to move to new namespace". В основном ответы конечно касаются запуска в контейнере. Но это не мой случай. Оно же как то запускается из главного меню. И ошибка там оканчивается именно как Permission denied. В одном источнике увидел, что это может быть как то связано с AppArmor. Вчера не было времени проверить. Сегодня не знаю. Может быть успею.

Оффлайн gadfly7

  • Участник
  • *
  • Сообщений: 23
Вы файлы SingletonCookie SingletonLock и SingletonSocket удалять пробовали?

Оффлайн Mr.Madguy

  • Участник
  • *
  • Сообщений: 260
Вы файлы SingletonCookie SingletonLock и SingletonSocket удалять пробовали?
Сегодня не успел. Но какой смысл, если в голом skel нет ~/.config/chromium/, т.е.при первом запуске этот папки даже нет?

UPD: Все таки задержался и попробовал на компьютере с голым skel. ls ~/.config - нет папки chromium. При первом же запуске - не запускается. Статус AppArmor не смог посмотреть под гостем - sudo не работает. Я не знаю. Если гостевой пользователь и так огорожен со всех сторон, то потеря sandbox может повлиять разве что на изоляцию между вкладками. Системе это вряд ли навредит.
« Последнее редактирование: 26.03.2026 19:25:13 от Mr.Madguy »

Оффлайн gadfly7

  • Участник
  • *
  • Сообщений: 23
Ну раз исходный skel не трогали, то да, конфигам при запуске взяться неоткуда.
Вот такая засада. Я сейчас захотел посмотреть работу гостевой сессии,  включил guest-account enable, и получил... не работающий Chromium в обычной, не гостевой учётной записи. И не представляю даже как это может быть взаимосвязанно, мож так звёзды совпали. Разбираться не стал - просто сделал откат.
Так что гостевой сеанс... такое себе.
« Последнее редактирование: 27.03.2026 09:42:18 от gadfly7 »

Оффлайн Mr.Madguy

  • Участник
  • *
  • Сообщений: 260
Починил. Я так и думал, что проблема в AppArmor. Проблема была банальной до нельзя. Вместо профиля для chromium в AppArmor был профиль для chromium-browser.

Вроде и в Firefox проблему тоже решил, но надо еще проверить именно на том компьютере. Для этого до копирования в skel надо в about:config удалить строки содержащие langpack, а потом удалить расширения языков из папки extensions. Скорее всего языки для Firefox установлены где-то в системе в виде пакетов и будут оттуда скопированы в папку extensions.
« Последнее редактирование: 30.03.2026 00:44:04 от Mr.Madguy »

Оффлайн Mr.Madguy

  • Участник
  • *
  • Сообщений: 260
С Chromium все получилось, а вот с Firefox нет. Если применять такой метод, как я сказал, то вроде бы Firefox языки устанавливает, но потом его переглючивает и он показывает неработоспособный интерфейс, пока не удалишь эти файлики. Когда же после этого удаляешь *langpack* из about:config - то все срабатывает. Но вообще есть намек на проблему. Если файлики расширений языков тупо скопировать туда-сюда, то возникает тот же косяк с тем, что их надо после этого разрешать. Так что есть подозрение, что где то в json-ах хранится время установки или типа того. Есть вариант попробовать просто вычистить все упоминания языков из json-ов, как будто эти дополнения не устанавливались. Сейчас просто уже нет времени это проверять. Как-нибудь в следующий раз проверю.

Самое смешное, что так же установлен uBlock и на него FFу плевать.
« Последнее редактирование: 31.03.2026 21:02:11 от Mr.Madguy »

Оффлайн owl5053

  • Участник
  • *
  • Сообщений: 28
Вероятно ошибка возникает, потому что ядро Linux запрещает обычным пользователям создавать изолированные пространства имён (namespaces), необходимые для работы песочницы Chromium.

Чтобы включить эту возможность, выполните в терминале под основным пользователем (с правами sudo):

echo 'kernel.unprivileged_userns_clone=1' | sudo tee /etc/sysctl.d/99-unprivileged-userns.conf
sudo sysctl --system

После этого перезапускать систему не надо, а надо запустить Chromium в гостевом сеансе обычным способом (без параметра --no-sandbox)

но могу конечно ошибаться....