Bash

在從 curl 管道到 sh 之前閱讀並確認 shell 腳本(curl -s你我_你r一世url|噓)

  • June 13, 2021

每當我必須從 web 執行 shell 腳本時curl -s [url] | sh,我首先url在我的 web 瀏覽器中打開以確保該腳本不是惡意的並且可以安全執行。

我記得看到一個命令行技巧,它可以從命令行讀取腳本,然後在讀取腳本後確認執行。如果我沒記錯的話,它看起來像curl -s [url] | something...here | sh並且不需要安裝任何軟體。

有人知道這個技巧嗎?

moreutils呼叫中有一個實用程序,vipe它在編輯器中顯示標準輸入,您可以在其中查看和修改文件,然後再將其傳遞到標準輸出。

如果您不想安裝moreutils,您可以完成類似的操作:

file=$(mktemp); curl -s "$url" > $file; $EDITOR $file; sh $file; rm $file

mktemp已在coreutils並且很可能已經安裝在您的系統上。

很難想像你為什麼要這樣做,更不用說你會找到一個(或多個)腳本源來下載和執行這樣頻繁以至於需要專用工具的地方。

為什麼不直接下載腳本curl(或wgetsnarf或其他),檢查和編輯它(這是一個罕見的腳本,不需要為您的特定係統進行一些自定義)然後執行它 - 通過使其可執行 withchmod或 with sh scriptname

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