Как занести родительский каталог в черный список, а дочерний – в белый список в firejail

Вопрос или проблема

Как мне заблокировать одну директорию [a] и разрешить доступ к другой директории [b], где [b] находится внутри [a]?

Я пытаюсь понять, как выполнить профиль Firefox в firejail так, чтобы он не видел другие профили Firefox.

Профили Firefox находятся в следующей директории:

$HOME/.mozilla/firefox/<profile_id>/

Предположим, у меня есть два профиля

user@host:~$ ls ~/.mozilla/firefox/
everyday_profile
firejailed_profile
user@host:~$ 

Я пытался выполнить firefox в firejail, где ~/.mozilla/firefox/firejailed_profile находится в белом списке, а ~/.mozilla/firefox/everyday_profile в черном списке, но это не сработало.

# это не работает
firejail --whitelist="$HOME/.mozilla/firefox/firejailed_profile" --blacklist="$HOME/.mozilla/firefox/*" firefox

К сожалению, когда я выполняю вышеуказанную команду, firefox не может найти никакой профиль firefox.

Как мне исправить команду firejail выше, чтобы белый список имел приоритет над черным списком (чтобы дочерняя директория была в белом списке, а родительская директория — в черном списке)?

Ответ или решение

Чтобы заблокировать родительский каталог и разрешить доступ к дочернему каталогу в Firejail, необходимо использовать правильные параметры командной строки. В вашем случае каталоги находятся в следующем пути:

$HOME/.mozilla/firefox/

И у вас есть два профиля:

  • everyday_profile – этот профиль должен быть заблокирован.
  • firejailed_profile – этот профиль должен быть разрешен для доступа.

Вы можете использовать параметры --whitelist и --blacklist, чтобы детализировать, какие каталоги должны быть доступны, а какие заблокированы. Однако проблема заключается в том, что Firejail не позволяет видеть дочерние каталоги, если родительский каталог заблокирован. Поэтому, вам нужно выполнить следующее:

  1. Добавьте родительский каталог в черный список, но при этом явно переключите доступ к дочернему каталогу. Для этого можно использовать флаг --blacklist для родителя, а затем --whitelist для дочернего слоя с добавлением опции, позволяющей обойти родительский черный список.

Вот команда, которая должна работать:

firejail --whitelist="$HOME/.mozilla/firefox/firejailed_profile" \
          --blacklist="$HOME/.mozilla/firefox/everyday_profile" \
          --private="$HOME/.mozilla/firefox/" \
          firefox

Обратите внимание на следующие моменты:

  • Указание --blacklist для конкретного профиля everyday_profile, что заблокирует доступ к нему.
  • Использование --whitelist, чтобы явно разрешить доступ к firejailed_profile.

Теперь, если вы запустите Firefox с этой командой, он должен иметь доступ только к профилю firejailed_profile, не видя everyday_profile. Убедитесь, что Firejail установлен и правильно сконфигурирован на вашем компьютере.

Если вы все еще сталкиваетесь с проблемами, рекомендую ознакомиться с документацией Firejail или проверить наличие дополнительных ограничений конфигурации, которые могут влиять на поведение программы.

Оцените материал
Добавить комментарий

Капча загружается...