web-dev-qa-db-fra.com

Quels sont les risques associés à l'exécution de 'Sudo pip'?

De temps en temps je tombe sur commentaires ou réponses cet état insiste sur le fait que lancer pip sous Sudo est "faux" ou "mauvais", mais il existe des cas avoir un tas d’outils mis en place) où il est beaucoup plus simple, voire nécessaire de le faire de cette façon.

Quels sont les risques associés à l'exécution de pip sous Sudo?


Notez que ce n'est pas la même question que celle-ci , qui, malgré le titre, ne fournit aucune information sur les risques. Ce n’est pas non plus une question sur la façon d’éviter d’utiliser Sudo, mais plutôt sur la raison pour laquelle on voudrait le faire.

86
orome

Lorsque vous exécutez pip avec Sudo, vous exécutez setup.py avec Sudo. En d’autres termes, vous exécutez du code arbitraire Python depuis Internet. Si quelqu'un met en place un projet malveillant sur PyPI et que vous l’installez, vous accordez à un attaquant un accès root à votre ordinateur. Quelques correctifs récents apportés à pip et à PyPI, un attaquant pourrait aussi faire attaquer un homme au milieu d'injecter son code lorsque vous téléchargiez un projet de confiance.

92
user395760

Outre les risques de sécurité évidents (qui, à mon avis, sont en fait faibles lorsque vous installez un logiciel que vous connaissez), d'autres réponses apportent une autre raison. Python fourni avec le système fait partie de ce système et lorsque vous souhaitez gérer le système, vous utilisez des outils conçus pour la maintenance du système, tels que le gestionnaire de packages en cas d'installation/de mise à niveau/de désinstallation de logiciels. Lorsque vous démarrez pour modifier le logiciel du système avec des outils tiers (pip dans ce cas-ci), vous n’aurez aucune garantie quant à l’état de votre système. Une autre raison est que Sudo peut vous causer des problèmes que vous n’auriez pas eu la chance de faire ou très peu voir par exemple incompatibilité entre sys.executable et sys.version en Python

Les Distros sont conscients de ce problème et tentent de l'atténuer. Par exemple, Fedora - Rendre Sudo pip sécurisé et Debian - paquets dist au lieu de paquets site .

16
Piotr Dobrogost

En utilisant pip de cette façon, vous faites confiance au niveau auquel vous lui permettez de faire n'importe quoi pour votre système. Non seulement pip, mais aussi tout code qu’il téléchargera et exécutera à partir de sources non fiables et potentiellement malveillantes.

Et pip n'a pas besoin de tous ces privilèges, seulement de l'accès en écriture à des fichiers et répertoires spécifiques. Si vous ne pouvez pas utiliser le gestionnaire de packages de votre système et ne souhaitez pas utiliser l'environnement virtuel, vous pouvez créer un utilisateur spécifique disposant des privilèges d'écriture sur le répertoire d'installation python) et l'utiliser pour le pip De cette façon, vous pourrez mieux contrôler ce que vous pouvez faire et ne pas faire. Et vous pouvez utiliser Sudo -u pour ça!

7
Cilyan

La seule chose qui "ne va pas" avec Sudo, c’est que c’est bien, en tant que super utilisateur ala racine, ce qui signifie que vous pouvez potentiellement détruire une installation avec la mauvaise commande. Comme PIP est un paquet de maintenance pour un programme particulier, vous auriez besoin de cet accès de toute façon pour apporter des modifications ...

2
EkriirkE