如何使用 libcap 中的 cap_dac_override

如何使用 libcap 中的 cap_dac_override

我正在嘗試測試 cap_dac_override。我寫了一個簡單的hello world。我已經編譯了該程序,並刪除了可執行檔的所有權限。

目前我無法透過執行 ./hello 來執行我的程序,這是正確的。現在我想應用一種能力,以便即使用戶沒有執行權限,程式仍然可以執行。

請問如何設定 cap_dac_override 以便我仍然可以執行程序,或者我使用 cap_dac_override 完全錯誤嗎?

setcap cap_dac_override=ep hello

答案1

您混淆了功能和權限。

檔案模式位或者權限描述文件可以做什麼。當您從檔案中刪除所有權限時,您指示作業系統您不希望任何人讀取該檔案、寫入該檔案或執行該檔案。

另一方面,文件功能描述了文件可以做什麼或者確切地說,源自於該程式檔案的進程可以做什麼,否則它不能做什麼。

setcap cap_dac_override=ep hello允許程式hello在運行時覆蓋通常的權限檢查。但這並沒有改變嘗試執行時應用通常的權限檢查hello

相關內容