
當我開始時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 沒有讀取(目錄列表)權限,但只有可執行位(進入子目錄)工作,即使ls foo/
失敗也是如此。
擴充場景將不允許除白名單之外的所有內容(設定檔 + /usr、/bin、/lib 等)。另一件沒有 root 似乎不可能的事情(然後應用程式本身以 root 身份運行)是將 ie /etc/passwd 替換為不包含用戶的文件,這在監獄中不應該被知道。/etc
包含大量可讀數據,這些數據應該對不受信任的應用程式隱藏。
但擴展場景可能確實證明了完整的 chroot + userspace-lxc 容器是合理的。