限製程式(Viber for Linux)僅存取特定目錄

限製程式(Viber for Linux)僅存取特定目錄

是否可以限製程式僅存取特定目錄,例如執行維伯在 Fedora 上並強制它只能讀取下面的/home/username/.local/share/viber/exchange目錄而不能讀取其他目錄?

我已經成功創建並運行維伯作為另一個user:groupviber:viber)。當我嘗試從 Viber 內部開啟屬於我或任何其他使用者的檔案時,它無法讀取它們。目標實現了,但部分實現了。現在,我偶然發現了另一個問題,那就是維伯僅適用於訊息,當我嘗試撥打電話時,它說它找不到麥克風或揚聲器?感覺我知道為什麼(我以我自己的身份運行 X Server(GNOME)並且維伯作為viber:viber( user:group) ) 但我不知道該如何讓維貝爾用戶在以我的名義運行 X 伺服器時使用麥克風和揚聲器?

可能是,我需要將viber使用者新增到某個群組?也許 SELinux 有一些解決方法?如果是這樣,您能提供適當的政策範例嗎? :D

維伯看起來很棒,但它不是開源的,只有上帝知道,那個預編譯軟體的原始碼是什麼!

答案1

使用chroot

創建一個小根目錄包含/bin/usr、等(取決於您的需求),將所有內容複製/lib到此/tmp新根,然後進入chroot該目錄。

chrootcommand 是一個非常古老的 Un*x 工具,正是按照這個意義建構的。

你可以綁定目錄在容器透過使用mount --bind

看看man chroot並且man mount

小嘗試:

ldd /bin/bash 
    linux-vdso.so.1 =>  (0x00007fff3e4b5000)
    libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f06290a1000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0628e9d000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0628b12000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f06292e8000)


sudo -s

警告,從那裡開始!

mkdir /tmp/test/chrooted/lib64
cp -t /tmp/test/chrooted/lib/x86_64-linux-gnu/ \
    /lib/x86_64-linux-gnu/{libc.so.6,libdl.so.2,libtinfo.so.5}
cp -t /tmp/test/chrooted/lib64 /lib64/ld-linux-x86-64.so.2 
chroot /tmp/test/chrooted

我入獄了!

ls
bash: ls: command not found

裡面沒有ls命令/bin

使用openvzlxc

下一步光虛擬化是運行其中之一openvzlxc(或其他,也許)。

這個工具大約可以做。與 相同chroot,但使用隔離的核心命名空間。這可以讓您模擬網路介面或其他設備以及記憶體、CPU 和其他資源的一些限制...

有了這樣的光虛擬化,您可以以與使用相同的方式共用目錄chroot,透過使用mount --bind(或在openvz使用下mount -t simfs可能有用)。

強大的虛擬化

接下來您可以使用kvm,xen或其他專有的虛擬化軟體...

但從那裡開始,共享目錄意味著某種(偽)網路服務

相關內容