web-dev-qa-db-ja.com

「Sudo pip」を実行するリスクは何ですか?

時々 コメントまたは応答 に遭遇します。この状態は、pipの下でSudoを実行することが「間違っている」または「悪い」ということを強調していますが、たくさんのツールをセットアップしてください)、もっと簡単な場合、またはそのように実行する必要がある場合です。

pipの下でSudoを実行することに関連するリスクは何ですか?


これは this one と同じ質問ではないことに注意してください。これは、タイトルにもかかわらず、リスクに関する情報を提供しません。また、これはSudoの使用を避ける方法についての質問ではなく、具体的になぜそうするのかについての質問です。

86
orome

pipSudoを実行すると、setup.py with Sudo。言い換えれば、ルートとしてインターネットから任意のPythonコードを実行します。誰かが悪意のあるプロジェクトをPyPIに置き、それをインストールした場合、攻撃者にマシンへのルートアクセス権を与えます。 pipおよびPyPIの最近の修正により、攻撃者は信頼できるプロジェクトをダウンロードするときに中間者攻撃を実行してコードを挿入することもできます。

92
user395760

明らかなセキュリティリスク(あなたが知っているソフトウェアをインストールするときは実際に低いと思います)に加えて、別の理由があります。 Pythonはこのシステムの一部であり、システムを管理する場合は、ソフトウェアのインストール/アップグレード/アンインストールの場合にパッケージマネージャーなどのシステムメンテナンス用に指定されたツールを使用します。サードパーティのツール(この例ではpip)を使用してシステムのソフトウェアを変更する場合、システムの状態についての保証はありませんが、もう1つの理由は、Sudoがあなたにチャンスがない、またはたとえば Pythonのsys.executableとsys.versionの不一致 を参照してください。

ディストリビューションはこの問題を認識しており、軽減しようとしています。たとえば、Fedora – Sudo pipを安全にする とDebian – site-packagesではなくdist-packages

16
Piotr Dobrogost

Pipをそのように使用するということは、システムに対して何かを行うことができるレベルまで信頼できることを意味します。 pipだけでなく、信頼できないソースからダウンロードして実行されるコードも悪意がある可能性があります。

また、pipにはすべての特権は必要なく、特定のファイルとディレクトリへの書き込みアクセスのみが必要です。システムのパッケージマネージャーを使用できず、仮想環境の方法を使用したくない場合は、pythonインストールディレクトリへの書き込み権限を持つ特定のユーザーを作成し、それをpipに使用できます。 。そうすれば、pipでできることとできないことをより適切に制御できます。また、Sudo -uそのために!

7
Cilyan

Sudoで "間違っている"唯一のことは、スーパーユーザーala rootとして機能することです。これは、間違ったコマンドでインストールを破壊する可能性があることを意味します。 PIPは特定のプログラムのパッケージメンテナンスであるため、変更を行うにはこのようなアクセスが必要です...

2
EkriirkE