http://dl.dropbox.com/u/11210438/flockonus-stack.shからスクリプトをダウンロードして実行したい。私の推測では、wgetを使用して名前を変更し、chmodして実行します。
Ubuntuでそれを行うためのコマンドは何ですか?
http://dl.dropbox.com/u/11210438/flockonus-stack.shからスクリプトをダウンロードして実行したい。私の推測では、wgetを使用して名前を変更し、chmodして実行します。
Ubuntuでそれを行うためのコマンドは何ですか?
回答:
慎重に
スクリプトを実行する前に、それを書いた人を信頼していますか?
たとえば、スクリプトにこれが含まれると予想しましたか?
echo "brain1" > /etc/hostname
それはあなたのホスト名を変更しようとします。
将来の参考のために、スクリプトが正しく、悪意のないことを確認した後、次のように1行で実行できます。
wget -O - http://dl.dropbox.com/u/11210438/flockonus-stack.sh | bash
ただし、個別にダウンロードして、初めて実行する前に読んでください。
また、この方法を使用すると、ダウンロードしたスクリプト内の対話型プロンプトが正しく機能しない可能性があることに注意してください。
apt-get install
ライン?apt-get
追加の依存関係をインストールする場合は、ユーザーに確認し、インストールできない場合は安全のために終了します。すべての依存パッケージをコマンドライン引数に追加するか、追加を検討してください-y
。たとえば、apt-get -y install...
非対話型スクリプト
wget -O - http://website.com/my-script.sh | bash
この方法を使用する場合、インタラクティブスクリプトは機能しないことに注意してください。
インタラクティブスクリプト
インタラクティブなスクリプトを機能させるために、これを使用できます:
bash <(wget -qO- http://website.com/my-script.sh)
ルートとして実行する必要があるインタラクティブスクリプト
警告:これは非常に危険です。推奨されません。
sudo su -c "bash <(wget -qO- http://website.com/my-script.sh)" root
sudo bash
を使用<(...)
すると仮想ファイルが作成され、そのファイル記述子はroots bashインスタンスからアクセスできないため、単純な使用はできないことに注意してください。仮想ファイルを読み取る必要のある同じユーザーで実行する必要があるため、ルートユーザーシェル内で独自のコマンドとして送信する必要があります。
そのスクリプトは私からです、それは安全です..ワンライナーを愛していましたが、実行されなかったいくつかのインタラクティブな行があります。
dpkgが実行されると、apt-getによって呼び出され、stdinをフラッシュします。のようなコマンドを使用しているcurl blah | bash
場合、基本的にはページのコンテンツをSTDIN経由でbashに送信しています。コマンドの1つがapt-getで実行されると、他のすべてがフラッシュされます。
トリックは、このようなコマンドを使用することapt-get install --yes denyhosts </dev/null
です。これにより、apt-getに異なる入力が与えられ、スクリプトの残りの部分ではなく/ dev / nullが単純にフラッシュされます。
リモートスクリプトを介して何かをインストールする完全な例をご覧になりたい場合は、denyhostsをセットアップするためにこのスクリプトをご覧ください。
記録のために、私はこのためにwgetよりもcurlを好みますが、wgetも問題ないはずです。
これらの例はすべて、かなり重要な点が欠落しています。urlを使用する場合は、http://dl.dropbox.com/u/11210438/flockonus-stack.sh
ダウンロードするたびにスクリプトを監査する必要があります。スクリプトは、ユーザーとDropboxの間のネットワークパス上の誰でも変更できるためです。http s://dl.dropbox.com/u/11210438/flockonus-stack.shに切り替えた場合、その不安定なソースはありません。
(Dropboxはhttp URLをhttpsにリダイレクトしようとしますが、ネットワーク攻撃の場合、wgetは実際のDropboxと通信できず、リダイレクトは表示されません)
wgetで指定したとおりに単純にダウンロードしてから、直接実行してみてください。あなたが空想を得て、ダウンロードしたいスクリプトなどの変数を使用することができますが、これはトリックを行います
例えば:
!#/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
echo "brain1" > /etc/hostname
は同じくらい簡単にできますrm -rf /
。