URLから直接Bashスクリプトを実行する
1. 概要
Linuxのさまざまなインストールガイドでは、最初にシェルスクリプトを実行し、それをダウンロードしてから、Bashを使用して個別に実行します。 インストールガイドだけでなく、手動アクティビティを自動化するために作成されたカスタムシェルスクリプトには、スクリプトのダウンロードと実行が含まれます。
このチュートリアルでは、curlとwgetを使用して、スクリプトを1つのステップでダウンロードして実行する方法について説明します。
セキュリティで保護されていない接続を介してスクリプトをダウンロードして実行するとマルウェアがインストールされる可能性があるため、この方法を使用する場合は注意が必要です。さらに、更新されたTLSプロトコルと curl/wgetを使用していることを確認する必要もあります。 ライブラリ。
専用の非特権非wheelユーザーグループを作成し、そこからスクリプトを実行することで、リスクを部分的に管理できます。 これにより、管理者権限でスクリプトが実行されないことが保証されます。
2. インストールと使用法– curl
一部のLinuxディストリビューションには、デフォルトでcurlがインストールされていない場合があります。
apt-get を使用して、任意のUbuntu/Debianシステムにインストールできます。
$ sudo apt-get install curl
または、同様にCentOs / Fedora/Redhatにインストールできます。
$ sudo yum install curl
これで、cURLを使用してスクリプトをダウンロードして実行するために、-sオプションを使用できます。 次に、結果をbashにパイプします。
$ curl -s <em>http://example.com/script.sh</em> | bash
-s オプションを使用する場合、cURLに URLのすべてのコンテンツをサイレントに取得する 平均ダウンロード速度や合計時間などの統計は表示されません。
これにより、 pipe | を使用して、実際にスクリプトを実行するBashコマンドにフィードすることができます。
3. インストールと使用法– wget
ほとんどLinuxディストリビューションにはwgetがデフォルトでインストールされています。
apt-get を使用して、任意のUbuntu/Debianシステムにインストールできます。
$ sudo apt-get install wget
または、同様にCentOs / Fedora/Redhatにインストールできます。
$ sudo yum install wget
ここで、 wget を使用してスクリプトをダウンロードして実行するには、 -q0 オプションとハイフンを使用して、結果をbashにパイプします。
$ wget -qO - <em>http://example.com/script.sh</em> | bash
-qオプションを使用すると、私たちは詳細な出力を出力しないことでファイルを静かにダウンロードするようにwgetに指示します。
オプションOは、script.shのコンテンツをファイルに保存するために使用されます。 末尾のハイフン( -qOとhttp:// の間のハイフン)は、wgetにこのコンテンツを/dev/stdoutに転送するように指示します。 / dev / stdout に向けられたものはすべて端末に表示されるため、script.shのコンテンツはディスクに書き込まれません。
この末尾のハイフンを使用すると、script.shのコンテンツを実際に実行するbashコマンドにパイプ処理できます。 末尾にハイフンと大文字を付けずにwgetを使用する場合、 O は、ファイルの内容をファイル名script.shでディスクに保存します。 。 これは、wgetが実際にLinuxでファイルをダウンロードするために使用されるためです。
一方、 curl は、デフォルトではファイルをダウンロードしません。 ただし、そのように使用する方法を見てきました。
4. 結論
この短い記事では、を使用してURLから直接シェルスクリプトを実行する方法を学びました。 カールと
安全でない接続を介してスクリプトをダウンロードして実行するのは危険であることがわかりました。最初にスクリプトをダウンロードし、通常のエディターで悪意のある可能性のあるコマンドをスキャンすると、リスクを軽減するのに役立ちます。更新されたTLSプロトコルとcurl/wgetライブラリを使用していることを確認してください。