Security

Lsof有三種功能可能會在成一些資安的問題,第一,預設的編譯模式允許任何人列舉所有已開啟的。第二,預設會在這個使用者的home資料夾建立一個對這個使用者可讀可寫的裝置快取檔(這個功能叫『list-all-open-files』和『device cache』可以在lsof編譯時取消)。第三,options『-k』和『-m』命名替換了kernel的name list或是memory files。

想要限制所有開啟檔案的列舉可以經由編譯時期的options - 『HASSECURITY』和『HASNOSOCKSECURITY』。當『HASSECURITY』有定義時,lsof將會只允許root列舉所有開啟的檔案,而非root的user則只能列舉出自己(也就是呼叫lsof的這個使用者)所開啟的檔案。

然而,如果『HASSECURITY』和『HASNOSOCKSECURITY』都有定義的話,則任何人都可以列舉所有已開啟的socket檔案(用option『-i』)。

當『HASSECURITY』沒有定義的話,任何人都可以列舉所有以開啟的檔案。這部份如果有需要的話可以翻閱lsof原始碼底下的『00README』- 『Security』章節。

建立和使用使用者可讀/可寫的裝置快取檔是被控制在編譯時期的『HASDCACHE』options。這部份請參考章節『DEVICE CACHE FILE』,舉個例子來說,如果執行lsof的使用者是root的話,則這個快取檔就會被產生在『/』或是『/root』底下,而如果『HASDCACHE』沒有被定義的話,則lsof則不會寫入任何的快取。

但是如果你想要關閉device cache 功能的話,建議還是開啟他來增進lsof的效能,主要是因為在開啟時會節省在『/dev』裡面檢查節點的時間。這部份如果有需要的話可以翻閱lsof原始碼底下的『00DCACHE』。

When lsof user declares alternate kernel name list or memory files with the -k and -m options, lsof checks the user's authority to read them with access(2). This is intended to prevent whatever special power lsof's modes might confer on it from letting it read files not normally accessible via the authority of the real user ID.

results matching ""

    No results matching ""