最近、ほとんどのインストールスクリプトには次の特定のパターンがあります。
curl -fsSL <url> | sh --- and usually run as root
一部のWebサイトには、プログラムをrootとして実行し、エラーを確認するための免責事項がある場合があります。ただし、これはあまり安全ではなく、CAインフラストラクチャとhttpsを使用してセキュリティを提供します。ウェブサイトがhttpsを介して送信するのではなく、署名付きバージョンでこれを行うのはなぜですか?否認防止とファイルの整合性は良くないでしょうか?ダウンロード後にほとんどの管理者が実行する操作。
答え1
その後、ほとんどの管理者が何をしているのかわかりませんが、次のことをする前に私が何をしているのかを教えてください。使用したいディストリビューションのパッケージを見つけ、自分の要件に合ったパッケージが見つからない場合は、要件パッケージの1つ
- 新しいサンドボックスを作成し、その中にソフトウェアをインストールし、ソフトウェアのインストールと機能を確認します。
- 階層の上位にいる人が知らせる場合は、新しいサンドボックスを作成してそこにインストールするか、
- 私はそれをインストールしません。
しかし、それは私です。パッケージに署名があるかどうかは関係ありません。私の脅威モデルにはソフトウェア開発者が含まれています。特に、そのソフトウェアを見た配布者がいないと確信できる場合にはさらにそうです。
ただし、このカールインストールモードは放棄する必要があります。
はい。しなければならない。しかし、それは本当ではなく、関連するすべてのLinuxディストリビューションと3〜4個のBSDのパッケージを作成するのが面倒であるため、ソフトウェア開発者がこの種のインストールを提供していることを理解できます。今は15年前よりも状況が悪い。
答え2
通常、curl URL(script) | sh
自動化されたスクリプトであるシェルスクリプト(インストールスクリプト)をダウンロードして実行します。簡単に依存関係の確認、ディレクトリの作成/削除、ルートパスワードの要求、リポジトリの追加、Linuxディストリビューションに適切なプログラムバージョンのダウンロードなどのタスクを実行するプログラムをインストールします。
インストールスクリプトを実行する前のベストプラクティス。
- スクリプトのダウンロード(コマンドの最初の部分)
curl url(script)
- テキストエディタを使用してスクリプトの内容(または、
cat
...less
)を確認します。 - インストールスクリプトを実行しています
sudo bash script
...sudo sh script
以下は、node.jsをインストールするための例示的なbashスクリプトです。curl -sL https://deb.nodesource.com/setup_9.x
使用説明書が含まれています。
インストールスクリプトの実行後のベストプラクティス
インストールスクリプトを実行すると、プログラムがシステムにインストールされます。インストールスクリプトにプログラムを更新する方法(パッケージマネージャを介した更新されたリポジトリの自動適用、cronジョブ...)が含まれていない場合は、管理者のWebページを参照することをお勧めします。