LINUX.ORG.RU

История изменений

Исправление Vsevolod-linuxoid, (текущая версия) :

Эта команда очень простая, разбираем:

firejail --private=ff --nodbus firefox-esr

  • firejail — запускает сам firejail, это ПО для изоляции ПО внутри контейнера
  • --private=ff — говорит, чтобы ПО не имело доступа к реальной домашней директории и видело директорию ff как домашнюю — то есть настройки будут сохранены в ff/.mozilla, так как для запущенного Firefox это ~/.mozilla
  • --nodbus — блокирует доступ к D-Bus с целью изоляции ПО в контейнере от ОС.
  • firefox-esr — эта команда запускает установленный в ОС Firefox ESR

Если же брать именно портативные версии Firefox, то я сейчас только что запустил именно такую внутри подобного контейнера:

vsevolod@hp15:~$ mkdir test
vsevolod@hp15:~$ cd test
vsevolod@hp15:~/test$ wget https://ftp.mozilla.org/pub/firefox/releases/113.0.1/linux-x86_64/ru/firefox-113.0.1.tar.bz2
--2023-05-14 01:08:16--  https://ftp.mozilla.org/pub/firefox/releases/113.0.1/linux-x86_64/ru/firefox-113.0.1.tar.bz2
Распознаётся ftp.mozilla.org (ftp.mozilla.org)… 34.117.35.28
Подключение к ftp.mozilla.org (ftp.mozilla.org)|34.117.35.28|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 80286558 (77M) [application/x-tar]
Сохранение в: «firefox-113.0.1.tar.bz2»

firefox-113.0.1.tar.bz2                         100%[=====================================================================================================>]  76,57M  4,60MB/s    за 28s     

2023-05-14 01:08:44 (2,78 MB/s) - «firefox-113.0.1.tar.bz2» сохранён [80286558/80286558]

vsevolod@hp15:~/test$ tar xaf firefox-113.0.1.tar.bz2 
vsevolod@hp15:~/test$ ls -l
итого 78412
drwxr-xr-x 7 vsevolod vsevolod     4096 мая 14 01:09 firefox
-rw-r--r-- 1 vsevolod vsevolod 80286558 мая 12 13:26 firefox-113.0.1.tar.bz2
vsevolod@hp15:~/test$ ls firefox
application.ini     firefox          icons                 libmozgtk.so      libnssckbi.so   libssl3.so         pingsender            Throbber-small.gif
browser             firefox-bin      libfreeblpriv3.so     libmozsandbox.so  libnssutil3.so  libxul.so          platform.ini          updater
crashreporter       firefox-bin.sig  libipcclientcerts.so  libmozsqlite3.so  libplc4.so      libxul.so.sig      plugin-container      updater.ini
crashreporter.ini   firefox.sig      liblgpllibs.so        libmozwayland.so  libplds4.so     locale.ini         plugin-container.sig  update-settings.ini
defaults            fonts            libmozavcodec.so      libnspr4.so       libsmime3.so    minidump-analyzer  precomplete
dependentlibs.list  gmp-clearkey     libmozavutil.so       libnss3.so        libsoftokn3.so  omni.ja            removed-files
vsevolod@hp15:~/test$ cd
vsevolod@hp15:~$ firejail --nodbus --private=test/ ~/firefox/firefox-bin
Reading profile /etc/firejail/default.profile
Reading profile /etc/firejail/disable-common.inc
Reading profile /etc/firejail/disable-programs.inc
Warning: networking feature is disabled in Firejail configuration file

** Note: you can use --noprofile to disable default.profile **

Parent pid 13684, child pid 13685
Warning: An abstract unix socket for session D-BUS might still be available. Use --net or remove unix from --protocol set.
Child process initialized in 115.30 ms
## дальнейший вывод обрезал

Правда повторный запуск выдает ошибку, пока не понял почему, как и ручное указание профиля firefox — но по сути я сделал следующее:

  • Создал директорию test
  • Скачал туда Firefox для Linux в архиве с официального хранилища
  • Распаковал его там
  • Запустил внутри контейнера с ограничением на доступ только в test

Исходная версия Vsevolod-linuxoid, :

Эта команда очень простая, разбираем:

firejail --private=ff --nodbus firefox-esr

  • firejail — запускает сам firejail, это ПО для изоляции ПО внутри контейнера
  • --private=ff — говорит, чтобы ПО не имело доступа к реальной домашней директории и видело директорию ff как домашнюю — то есть настройки будут сохранены в ff/.mozilla, так как для запущенного Firefox это ~/.mozilla
  • --nodbus — блокирует доступ к D-Bus с целью изоляции ПО в контейнере от ОС.
  • firefox-esr — эта команда запускает установленный в ОС Firefox ESR

Если же брать именно портативные версии Firefox, то я сейчас только что запустил именно такую внутри подобного контейнера:

vsevolod@hp15:~$ mkdir test
vsevolod@hp15:~$ cd test
vsevolod@hp15:~/test$ wget https://ftp.mozilla.org/pub/firefox/releases/113.0.1/linux-x86_64/ru/firefox-113.0.1.tar.bz2
--2023-05-14 01:08:16--  https://ftp.mozilla.org/pub/firefox/releases/113.0.1/linux-x86_64/ru/firefox-113.0.1.tar.bz2
Распознаётся ftp.mozilla.org (ftp.mozilla.org)… 34.117.35.28
Подключение к ftp.mozilla.org (ftp.mozilla.org)|34.117.35.28|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 80286558 (77M) [application/x-tar]
Сохранение в: «firefox-113.0.1.tar.bz2»

firefox-113.0.1.tar.bz2                         100%[=====================================================================================================>]  76,57M  4,60MB/s    за 28s     

2023-05-14 01:08:44 (2,78 MB/s) - «firefox-113.0.1.tar.bz2» сохранён [80286558/80286558]

vsevolod@hp15:~/test$ tar xaf firefox-113.0.1.tar.bz2 
vsevolod@hp15:~/test$ ls -l
итого 78412
drwxr-xr-x 7 vsevolod vsevolod     4096 мая 14 01:09 firefox
-rw-r--r-- 1 vsevolod vsevolod 80286558 мая 12 13:26 firefox-113.0.1.tar.bz2
vsevolod@hp15:~/test$ ls firefox
application.ini     firefox          icons                 libmozgtk.so      libnssckbi.so   libssl3.so         pingsender            Throbber-small.gif
browser             firefox-bin      libfreeblpriv3.so     libmozsandbox.so  libnssutil3.so  libxul.so          platform.ini          updater
crashreporter       firefox-bin.sig  libipcclientcerts.so  libmozsqlite3.so  libplc4.so      libxul.so.sig      plugin-container      updater.ini
crashreporter.ini   firefox.sig      liblgpllibs.so        libmozwayland.so  libplds4.so     locale.ini         plugin-container.sig  update-settings.ini
defaults            fonts            libmozavcodec.so      libnspr4.so       libsmime3.so    minidump-analyzer  precomplete
dependentlibs.list  gmp-clearkey     libmozavutil.so       libnss3.so        libsoftokn3.so  omni.ja            removed-files
vsevolod@hp15:~/test$ cd
vsevolod@hp15:~$ firejail --nodbus --private=test/ ~/firefox/firefox-bin
Reading profile /etc/firejail/default.profile
Reading profile /etc/firejail/disable-common.inc
Reading profile /etc/firejail/disable-programs.inc
Warning: networking feature is disabled in Firejail configuration file

** Note: you can use --noprofile to disable default.profile **

Parent pid 13684, child pid 13685
Warning: An abstract unix socket for session D-BUS might still be available. Use --net or remove unix from --protocol set.
Child process initialized in 115.30 ms

Правда повторный запуск выдает ошибку, пока не понял почему, как и ручное указание профиля firefox — но по сути я сделал следующее:

  • Создал директорию test
  • Скачал туда Firefox для Linux в архиве с официального хранилища
  • Распаковал его там
  • Запустил внутри контейнера с ограничением на доступ только в test