Wget一个脚本并运行它

我想从http://dl.dropbox.com/u/11210438/flockonus-stack.sh下载脚本并执行它。 我的猜测是,使用wget重命名它,chmod它,然后执行。

在Ubuntu上做什么命令?

    小心

    在运行脚本之前,你相信写这个脚本的人吗?

    例如,你是否期望脚本包含这个?

    echo "brain1" > /etc/hostname 

    这将尝试改变你的主机名。


    为了将来的参考,如果validation脚本是正确的而不是恶意的,你可以像这样在一行中运行它:

     wget -O - http://dl.dropbox.com/u/11210438/flockonus-stack.sh | bash 

    但是单独下载并在第一次运行之前阅读它。

    另请注意,使用此方法,下载的脚本中的交互提示可能无法正常工作。

    那个剧本是从我这里来的,这是安全的..爱一行,但是,它有一些互动的线路没有运行..不知道为什么?

    当dpkg运行时,由apt-get调用,刷新标准input。 如果您正在使用像curl blah | bash的命令 curl blah | bash ,那么你基本上是通过STDIN发送页面内容到bash。 如果你的一个命令是apt-get,然后运行,其他所有命令都将被刷新。

    窍门是使用这样的命令apt-get install --yes denyhosts </dev/null 。 这给apt-get一个不同的input,它只是刷新/ dev / null而不是脚本的其余部分。

    如果你想看到一个完整的例子,通过远程脚本安装的东西,你可能想看看这个脚本设置拒绝主机

    为了logging,我宁愿curlwget这个,但wget也应该罚款。

    所有这些例子都缺less一个相当重要的观点。 如果使用url http://dl.dropbox.com/u/11210438/flockonus-stack.sh ,则每次下载脚本时都需要审核脚本,因为它可以由您之间的networkingpath上的任何人修改和Dropbox。 如果你切换到http://dl.dropbox.com/u/11210438/flockonus-stack.sh ,你将不会有这种不安全的根源。

    (Dropbox尝试将http URLredirect到https,但在networking攻击的情况下,wget永远不会对真正的Dropbox说话,并且永远不会看到redirect)

     #!/bin/sh if [ ! -f "/tmp/flockonus-stack.sh" ] then wget -O /tmp/flockonus-stack.sh http://dl.dropbox.com/u/11210438/flockonus-stack.sh fi sh /tmp/flockonus-stack.sh 

    试着简单地下载它,就像你用wget指定的一样,然后直接执行它。 你可以花哨,并使用你想下载的脚本等variables,但这会做的伎俩

    例如:

     !#/bin/bash #Change to temp directory cd /tmp #Download file using wget wget http://dl.dropbox.com/u/11210438/flockonus-stack.sh #Execute the file sh flockonus-stack.sh