История изменений
Исправление 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