Всем привет!

Сегодня мы рассмотрим основную проблему с установкой браузера Vivaldi в нестандартный каталог (включая standalone/USB установку) в Linux системах. Во второй части статьи мы поговорим об установке уже в деталях.

Краткое описание проблемы

Основная проблема, которая возникает при запуске браузера Vivaldi из нестандартного каталога в Linux системах, связана с «песочницей» Chromium (sandbox), ключевым элементом безопасности. Песочница Chromium в Linux требует прав суперпользователя. Это достигается использованием SUID — передачей пользователю админских прав доступа к песочнице.

В зависимости от версии вашего ядра Linux и его конфигурации, песочница может не требовать админских прав от пользователя. Говоря в общем, этого не потребуется для ядра Linux версии 3.17 и выше. Но в некоторых дистрибутивах (как Arch, к примеру) проблема остаётся и с более свежим ядром. Поэтому в данном случае, предлагая решение проблемы ниже по тексту, мы предоставляем «неофициальную» поддержку установки браузера в нестандартный каталог, т.к. не для всех пользователей это будет работать.

Почему песочница требует прав администратора

Процесс, отвечающий за безопасность, имеет права администратора, чтобы контролировать другие процессы и не дать им сделать что-то, чего им делать не следует. Это не единственная утилита, работающая подобным образом в целях безопасности. Многие компоненты операционных систем запускаются с правами администратора, включая классическую утилиту chroot.

Могу успокоить тех, кто беспокоится о том, что происходит в песочнице — этот код является частью Chromium и доступен для просмотра и аудита. Вы даже можете самостоятельно скомпилировать этот код и заменить им тот, что представлен в браузере.

С тех пор, как было признано нецелесообразным повышать привилегии пользователя в процессе работы, код песочницы был недавно изменён для использования альтернативных методов, поддерживаемых ядром Linux. Вы можете самостоятельно проверить, использует ли ваш браузер SUID метод для песочницы, введя в адресной строке адрес vivaldi://sandbox. Если для параметра «Песочница SUID» установлено значение «Нет», а комментарий гласит, что «Вы находитесь в корректной тестовой среде», то данный метод в вашей системе больше не используется.

Как это усложняет установку в нестандартный каталог

При обычной установке, которая осуществляется с правами администратора (иногда с помощью sudo) в общедоступный системный каталог (например, в /opt), бинарный код песочницы всегда устанавливается с соответствующими правами доступа SUID. Метод песочницы SUID будет использоваться в том случае, если обеспечить безопасность более современными методами невозможно.

Пользователи, осуществляющие нестандартную установку, как правило, хотят запускать браузер из каталога, права доступа к которому ограничены правами доступа пользователя. Это может быть в случае, если пользователь не является администратором в установленной системе, или если пользователь хочет вместо установки просто распаковать установочный пакет и запустить браузер непосредственно. Оба варианта вполне возможны, если ядро Linux поддерживает альтернативные способы обеспечения безопасности, требуемые песочнице. если же ядро не имеет такой поддержки, при попытке запустить браузер в терминале появится сообщение об ошибке, сообщающее, что песочница не имеет достаточных прав для такого действия.

Некоторые пользователи, сталкивавшиеся с подобной проблемой, пробовали отключать песочницу, но это не очень хорошая идея, т.к. таким образом вы отключаете главную систему безопасности браузера. Также пользователь может попробовать поменять права доступа для песочницы. Это возможно только в том случае, если пользователь имеет права доступа администратора и каталог, в котором размещён браузер, не смонтирован с опцией "nosuid" (весьма распространённая ситуация для домашнего каталога пользователя /home на многих дистрибутивах).

Существует ли безопасное доступное решение данной проблемы?

Если в системе уже имеется корректно установленная песочница с предыдущей версией браузера Vivaldi (или с другим основанном на Chromium браузером), вы можете указать устанавливаемому нестандартно браузеру использовать уже существующую песочницу взамен той, что идёт с устанавливаемым пакетом. Для этого удалите (или переместите в другой каталог) песочницу из нестандартной установки и укажите для переменной CHROME_DEVEL_SANDBOX уже установленную песочницу. Например, в "~/.bash_profile" (или в другом подходящем скрипте) вы можете сделать следующее указание:

export CHROME_DEVEL_SANDBOX=/opt/google/chrome/chrome-sandbox


Примечание: Вы должны иметь в наличии свежую версию песочницы (в идеале — совпадающую с версией в устанавливаемом нестандартно браузере), иначе вы можете столкнуться с различными проблемами или установленная песочница может не иметь последних обновлений безопасности.

В следующей статье мы расскажем об установочном пакете браузера Vivaldi и о различных опциях установки.

Комментарии (0)