Ste*_*ett 1 bash shell curl wget
我喜欢为事物提供单行bash安装脚本,看起来像这样:
curl https://gist.githubusercontent.com/.../raw/install.sh | bash
Run Code Online (Sandbox Code Playgroud)
甚至
curl http://tinyurl.com/installmything | bash
Run Code Online (Sandbox Code Playgroud)
但对于那些不信任我的人来说,这显然是一个巨大的安全风险.
有没有方便,简单的方法:
例如,我可以像这样提供单行:
wget https://gist.githubusercontent.com/.../installthing.sh ; cat installthing.sh ; read -p "Type YES to continue: " X && [ $X = "YES" ] && bash installthing.sh
Run Code Online (Sandbox Code Playgroud)
这不符合繁琐的要求.有更好的方法吗?
有两种类型的人不信任你:
谁知道bash:这些人无论如何都会下载你的脚本并查看其内容.他们明白什么curl ... | bash做,他们不会执行该命令.
谁不知道bash:即使你向这些人展示源代码,他们也无法做任何事情.他们无法确定该代码是否存在安全风险.
所以我认为不需要让用户在执行之前查看脚本的内容.但是如果你仍然需要它,你可以运行脚本,但在实际代码执行之前询问用户.就像是:
#!/bin/bash
read -p "Do you wish to see the content of this script before execution?" -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
tail -n +20 "$0"
echo
read -p "Continue? " -n 1 -r
echo
if [[ $REPLY =~ ^[Nn]$ ]]
then
exit
fi
fi
echo "INSTALL"
Run Code Online (Sandbox Code Playgroud)
这样你可以继续使用:
curl https://gist.githubusercontent.com/.../raw/install.sh | bash
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
152 次 |
| 最近记录: |