2012-10-11 50 views
0

我的系統在/ stuff中有一個掛載點。我需要一個特定的程序來看/作爲一個不同的掛載(該程序已硬編碼/東西的路徑,我不能改變)。有沒有辦法讓特定的程序視圖/東西與其他人不同?我需要使用chroot,並從我的真實rootfs複製所有掛載/ devnodes等?謝謝。只有一個進程的掛載點/符號鏈接

編輯:爲了澄清,我希望一個程序在外觀/東西時看到不同的地方,我不希望程序通過不同的地方訪問/東西的內容。例如,如果系統中的任何其他地方做了「ls/stuff」,他們會看到fileA.txt fileB.txt,但是如果這一個程序要做「ls/stuff」,它會看到fileC.txt。

+0

只有這個特別的人才有權在新的加載點下看到/填充內容嗎? – Ancaron

+0

沒有權限問題。我只需要這一個程序來查看內部/東西中的不同文件。 – gimmeamilk

回答

0

當你用「Linux」標記這個問題時,我會認爲這是你要求的操作系統。根據特定程序開始的方式,您可以使用「unshare(1)」創建解決方法。

爲此,您必須編寫腳本掛載(或綁定掛載),無論程序需要/stuff然後執行程序。不過,不要單獨啓動這個腳本。使用「unshare -m thescriptsname」,只有以腳本使用的進程開始的進程樹纔會看到新的/已更改的裝載。

根據情況啓動一個可以在不影響系統的情況下更改掛載的shell也可能有所幫助。 「unshare -m $SHELL」應該給予必要的分離。