Shell

chmod +x 與 sudo 執行檔之間的區別

  • August 23, 2019

使用者可以通過以下方式執行執行檔: sudoing 允許使用者以所有者身份執行執行檔,或者通過設置執行位 chmod u+x (或者應該是 chmod a +x ?)。

那麼,鑑於它們具有相同的效果,即允許所有者以外的其他人執行執行檔,兩者之間的真正區別是什麼?

我懷疑您的意思是專門詢問chmod o+x, 以使other(即既不是指定的使用者user也不是指定的成員group)使用者能夠執行該文件。chmod a+x是 的超集,chmod o+x因為它打開了所有 3 ( 、 和 ) 的user執行group權限other

區別在於程序將在其中執行的上下文。隨著sudo程序在指定使用者的上下文中執行;沒有sudo程序在目前使用者的上下文中執行。對於某些腳本,這可能根本不重要,但如果涉及到任何涉及使用者權限的事情,那就很重要了。也許用一個假設的惡意腳本來解釋這一點會有所幫助,該腳本將刪除使用者主目錄中的所有文件:

如果使用者alice執行sudo -u bob deleteHomeFiles.sh,則 bob 主目錄中的文件將全部刪除。另一方面,如果直接alice執行deleteHomeFiles.sh,alice 的主目錄中的文件將被刪除。

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