it-swarm.com.de

Was sind die Risiken von 'Sudo Pip'?

Gelegentlich stoße ich auf Kommentare oder Antworten mit Nachdruck darauf, dass das Ausführen von pip unter Sudo "falsch" oder "schlecht" ist, aber es gibt Fälle (einschließlich der Art und Weise, wie ich Habe eine Reihe von Tools eingerichtet, bei denen es entweder viel einfacher ist oder sogar notwendig ist, sie auf diese Weise auszuführen.

Welche Risiken sind mit der Ausführung von pip unter Sudo verbunden?


Beachten Sie, dass dies nicht dieselbe Frage ist wie diese , die trotz des Titels keine Informationen über Risiken liefert. Dies ist auch keine Frage, wie man die Verwendung von Sudo vermeidet, sondern speziell, warum man dies möchte.

86
orome

Wenn Sie pip mit Sudo ausführen, führen Sie setup.py mit Sudo. Mit anderen Worten, Sie führen beliebigen Python) - Code aus dem Internet als Root aus. Wenn jemand ein bösartiges Projekt auf PyPI erstellt und Sie es installieren, gewähren Sie einem Angreifer Root-Zugriff auf Ihren Computer Bei einigen aktuellen Korrekturen an pip und PyPI könnte ein Angreifer auch einen Mann in der Mitte angreifen, um seinen Code einzufügen, wenn Sie ein vertrauenswürdiges Projekt herunterladen.

92
user395760

Neben offensichtlichen Sicherheitsrisiken (die meines Erachtens bei der Installation von Software, die Sie kennen, tatsächlich gering sind), gibt es noch einen weiteren Grund für die Beantwortung. Python, das mit dem System geliefert wird, ist Teil dieses Systems. Wenn Sie das System verwalten möchten, verwenden Sie für die Systemwartung vorgesehene Tools wie Package Manager, wenn Sie Software installieren/aktualisieren/deinstallieren Wenn Sie die Systemsoftware mit Tools von Drittanbietern (in diesem Fall pip) modifizieren, haben Sie keine Garantie für den Zustand Ihres Systems. Ein weiterer Grund ist, dass Sudo Probleme mit sich bringen kann, für die Sie keine oder nur eine sehr geringe Chance haben habe sonst. Siehe zum Beispiel Mismatch zwischen sys.executable und sys.version in Python

Distros sind sich dieses Problems bewusst und versuchen, es zu mildern. Zum Beispiel Fedora - Sudo Pip sicher machen und Debian - dist-Pakete anstelle von site-Paketen .

16
Piotr Dobrogost

Wenn Sie pip auf diese Weise verwenden, bedeutet dies, dass Sie ihm so vertrauen, wie Sie es für Ihr System zulassen. Nicht nur pip, sondern auch jeglicher Code, der von Quellen heruntergeladen und ausgeführt wird, denen Sie möglicherweise nicht vertrauen. Dies kann böswillig sein.

Und pip benötigt nicht all diese Rechte, nur den Schreibzugriff auf bestimmte Dateien und Verzeichnisse. Wenn Sie den Paketmanager Ihres Systems nicht verwenden können und nicht in die virtuelle Umgebung wechseln möchten, können Sie einen bestimmten Benutzer mit Schreibberechtigung für das Installationsverzeichnis python= verwenden und für pip verwenden Auf diese Weise können Sie besser steuern, was Pip tun und was nicht. Und Sie können Sudo -u Dafür verwenden!

7
Cilyan

Das einzige "falsche" an Sudo ist, dass es als Super User ala root funktioniert, was bedeutet, dass Sie eine Installation möglicherweise mit dem falschen Befehl zerstören können. Da es sich bei PIP um eine Paketwartung für ein bestimmtes Programm handelt, benötigen Sie einen solchen Zugriff, um Änderungen vornehmen zu können ...

2
EkriirkE