2011-09-24 47 views
2

因此,如果我想在fork之後的子進程上使用exec()運行二進制文件,但只想限制文件訪問某個目錄,那麼如何安全地去做?正確運行安全運行時的二進制文件(seteuid等)

這是否涉及在unix/linux中創建一個新用戶,然後將uid設置爲該用戶?或者需要創建一個組(比如webapps)然後使用setguid?

當然,可以按原樣運行二進制文件,但似乎採取一些安全措施絕不是一個壞主意。

回答

1

我會看看chroot。這是分離系統各個部分的一種相對簡單的方法。

簡而言之:您更改特定進程的根目錄,因此/ path/to/working/dir現在是/正在進行此過程。當然,您必須將所有必需的東西(實用程序,庫,配置)添加到此文件夾中。

+1

'chroot'很難正確設置,它不能用來限制UID 0進程的根目錄。它不是也從未被設計成以這種方式使用。 –

+0

是真的,但是有什麼限制與uid 0的人?我假設他的代碼沒有以root身份運行,如果是,我的第一個建議是增加安全性,將不會以root身份運行:),必須在根目錄下運行的單獨部分,並使用最少的特權運行其他所有部分。 – reto

相關問題