Gelegentlich laufe ich in Kommentaren oder Antworten dieser Zustand mit Nachdruck , dass läuft pip
unter sudo
ist „falsch“ oder „schlecht“, aber es gibt Fälle (einschließlich der Art , wie ich eine Reihe von Tools eingerichtet haben) , wo es entweder viel einfacher ist , oder sogar notwendig, Führen Sie es so aus.
Was sind die Risiken im Zusammenhang mit dem Betrieb pip
unter sudo
?
Beachten Sie, dass dies nicht dieselbe Frage ist wie diese , die trotz des Titels keine Informationen über Risiken enthält. Dies ist auch keine Frage, wie man die Verwendung vermeidet sudo
, sondern speziell, warum man dies möchte.
pip
oder für einen nachfolgenden Lauf der installierten Datei?sudo
oder nicht, wenn ichpip
, richtig? Sobald es installiert ist, sind wir alle gefährdet, egal wie es dort ankam?sudo
diese Berechtigungsprobleme zu vermeiden, indem die Pakete an einer anderen Stelle installiert werden (z. B. in einer virtuellen Umgebung). Dies kann sogar besser und zuverlässiger sein, selbst wenn alle Sicherheitsbedenken ignoriert werden.sudo
geben Sie ihm natürlich Root-Rechte. Das ist der springende Punktsudo
und sicherlich nicht spezifisch fürpip
.Neben offensichtlichen Sicherheitsrisiken (die meiner Meinung nach bei der Installation von Software, die Sie kennen, tatsächlich gering sind) gibt es noch einen anderen Grund. Python, das mit dem System geliefert wird, ist Teil dieses Systems. Wenn Sie das System verwalten möchten, verwenden Sie Tools, die für die Systemwartung vorgesehen sind, wie z. B. den Paketmanager, wenn Sie Software installieren, aktualisieren oder deinstallieren. Wenn Sie beginnen, die Systemsoftware mit Tools von Drittanbietern (in diesem Fall pip) zu ändern, haben Sie keine Garantie für den Status Ihres Systems. Ein weiterer Grund ist, dass Sudo Ihnen Probleme bereiten kann, für die Sie keine oder nur eine sehr geringe Chance hätten. Siehe zum Beispiel Nichtübereinstimmung zwischen sys.executable und sys.version in Python
Distributionen sind sich dieses Problems bewusst und versuchen, es zu mindern. Zum Beispiel Fedora - Sudo Pip sicher machen und Debian - dist-Pakete anstelle von Site-Paketen .
quelle
Wenn Sie pip auf diese Weise verwenden, vertrauen Sie ihm bis zu dem Grad, an dem Sie zulassen, dass er etwas für Ihr System bewirkt. Nicht nur pip, sondern auch jeglicher Code, der von Quellen heruntergeladen und ausgeführt wird, denen Sie möglicherweise nicht vertrauen, und die böswillig sein können.
Und pip benötigt nicht all diese Berechtigungen, sondern 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 Python-Installationsverzeichnis erstellen und für pip verwenden. Auf diese Weise können Sie besser steuern, was Pip tun kann und was nicht. Und das können Sie nutzen
sudo -u
!quelle
site-packages
?pip
selbst, IPython, Django, Pylements, ...), so dass Sie auch Zugriff auf das Verzeichnis benötigen, in dem sie sich selbst installieren.pip
(keine weiteren Änderungen am System, wie z. B. ein neues Home-Verzeichnis usw. erforderlich)? Danach gehe ich davon aussite-packages
, dass ich nur den Besitzer dieses Benutzers ändere , richtig?Das einzige, was "falsch"
sudo
ist, ist, dass es als Super User ala root fungiert, was bedeutet, dass Sie möglicherweise eine Installation 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 ...quelle