Permissions

執行檔的所有者沒有執行權限是否有意義?

  • May 1, 2018
  1. 假設一個執行檔的 set-user-id 位打開。

程序在執行執行檔時,核心通過文件訪問測試確定該文件可以執行後,將其有效使用者ID更改為執行檔的所有者使用者ID。請參閱 https://stackoverflow.com/questions/41456225/how-and-when-does-exec-change-the-effective-user-id-when-the-set-user-id-is-s什麼是程序文件的 set-user-ID 的用法?

這是否意味著執行檔的所有者使用者ID可以是不通過核心執行的文件訪問測試的使用者ID,即使基於程序的原始有效使用者ID已經通過了測試? 2. 一般來說,執行檔的所有者沒有執行權限是否有意義?

謝謝。

  1. 我不知道它是如何工作的(主要是因為我從未見過這種配置有任何用途)。我的猜測是這無關緊要,因為 SUID 有效地seteuid()在啟動過程的最後(就在執行轉移到程序本身之前)發出呼叫,這將文件被載入執行之後,因此一次檢查也發生了(檢查發生在任何數據載入到記憶體之前(至少在 Linux 上))。
  2. 這取決於你所說的有意義。它在功能上什麼都不做,因為所有者可以自己設置可執行位(假設沒有額外的強制訪問控制阻止他們這樣做),所以在這方面不是真的。至於它在有用的意義上是否有意義,我想不出任何情況下所有者沒有執行權限但其他使用者有執行權限是有意義的,所以我也會說不。

引用自:https://unix.stackexchange.com/questions/441109