1

Когда я запускаю firejail , я вижу свой полный домашний каталог. Когда я начинаю firejail --whitelist=~/something , я вижу только something в моем доме. Теперь я хотел бы ограничить больше доступа к системе. Я могу, например, добавить --blacklist=/media и он работает как положено.

Но как поведение по умолчанию определяет, что /home/OTHERUSER и /home/* кроме файлов из белого списка, скрыты? Я не вижу подходящего правила в /etc/firejail/* .

И допустимы ли подкаталоги? Например, --blacklist=/media --whitelist=/media/data не работает должным образом , даже когда man-страница сообщает, что белый список переопределяет другие параметры, такие как --read-only .

Эти правила жестко запрограммированы в двоичном коде? Если нет, какое правило делает эти вещи?

Пример того, что я хотел бы иметь. Основные правила:

  1. Дом пуст, кроме вещей, перечисленных в профиле
  2. Черный список /media/data
  3. Разрешить символическую ссылку ~/apps ->/media/data/apps только для чтения.
  4. Разрешить /media/data/apps (если необходимо) только для чтения.

1, 2 работают, 3 работает только с 4 (вероятно, все в порядке), но переопределение прав на чтение для подкаталога запрещенного каталога не работает.

Кажется, что это немного сработает, но на уровне файловой системы mkdir -p foo/bar;chmod 111 foo;ls foo/bar/ (где 111 означает, что для foo нет разрешения на чтение (dir-list) , но работает только исполняемый бит (входящий в подкаталоги), даже когда ls foo/ fail.

Расширенный сценарий запретил бы все, кроме белого списка (профиль + /usr, /bin, /lib и т.д.). Другая вещь, которая не представляется возможной без root (а затем само приложение запускается от имени root), это заменить ie /etc /passwd на тот, который не содержит пользователей, что не должно быть известно в тюрьме. /etc содержит довольно много читаемых данных, которые следует скрыть от ненадежных приложений.

Но, возможно, расширенный сценарий действительно оправдал бы полный контейнер chroot + userspace-lxc.

0