Shell
chmod +x 與 sudo 執行檔之間的區別
使用者可以通過以下方式執行執行檔: 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 的主目錄中的文件將被刪除。