Как firejail создает свой черный список по умолчанию?
Когда я начну firejail
Я вижу мой полный домашний каталог. Когда я начну firejail --whitelist=~/something
я вижу только something
в моем доме. Теперь я хотел бы ограничить больше доступа к системе. Я могу например добавить --blacklist=/media
и работает как положено.
Но как поведение по умолчанию определяет, что /home/OTHERUSER
а также /home/*
кроме белого списка файлы скрыты? Я не вижу подходящего правила в /etc/firejail/*
,
И допустимы ли подкаталоги? Например --blacklist=/media --whitelist=/media/data
не работает должным образом, даже если на странице руководства указано, что белый список переопределяет другие параметры, такие как --read-only
,
Эти правила жестко запрограммированы в двоичном коде? Если нет, какое правило делает эти вещи?
Пример того, что я хотел бы иметь. Основные правила:
- Дом пуст, кроме вещей, перечисленных в профиле
- Черный список
/media/data
- Разрешить символическую ссылку
~/apps ->/media/data/apps
только для чтения. - Разрешать
/media/data/apps
(если необходимо) только для чтения.
1, 2 работают, 3 работает только с 4 (вероятно, все в порядке), но переопределение доступа для чтения для подкаталога запрещенного каталога не работает.
Кажется, немного противоречит интуитивно, что это должно работать, но на уровне файловой системы mkdir -p foo/bar;chmod 111 foo;ls foo/bar/
(где 111
означает, что у foo нет разрешения на чтение (dir-list), но работает только исполняемый бит (входящие в подкаталоги), даже если ls foo/
выходит из строя.
Расширенный сценарий запретил бы все, кроме белого списка (профиль + /usr, /bin, /lib и т. Д.). Другая вещь, которая не представляется возможной без root (а затем само приложение запускается от имени root), это заменить ie /etc/passwd на тот, который не содержит пользователей, что не должно быть известно в тюрьме. /etc
содержит довольно много читаемых данных, которые должны быть скрыты от ненадежных приложений.
Но, возможно, расширенный сценарий действительно оправдал бы полный контейнер chroot + userspace-lxc.