Parfois, je rencontre des commentaires ou des réponses qui déclarent catégoriquement que courir pip
sous sudo
est "faux" ou "mauvais", mais il y a des cas (y compris la façon dont j'ai mis en place un tas d'outils) où il est soit beaucoup plus simple, voire nécessaire de exécutez-le de cette façon.
Quels sont les risques associés à la pip
sous-utilisation sudo
?
A noter que ce n'est pas la même question que celle-ci , qui, malgré le titre, ne donne aucune information sur les risques. Ce n'est pas non plus une question de savoir comment éviter d'utiliser sudo
, mais de savoir pourquoi on le voudrait.
pip
ou pour toute exécution ultérieure de ce qu'elle a installé?sudo
ou non quand jepip
, non? Une fois qu'il est installé, nous sommes tous à risque, peu importe comment il y est arrivé?sudo
mais aussi ces problèmes d'autorisation en installant les paquets ailleurs (par exemple dans un virtualenv). Cela peut même être meilleur et plus fiable, même en ignorant tous les problèmes de sécurité.sudo
donnez-lui les privilèges root; c'est tout l'intérêt desudo
, et certainement pas spécifique àpip
.Outre les risques de sécurité évidents (qui, je pense, sont en fait faibles lorsque vous installez un logiciel que vous connaissez) ont apporté d'autres réponses, il y a 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 destinés à la maintenance du système comme le gestionnaire de packages en cas d'installation / mise à niveau / désinstallation de logiciels. Lorsque vous commencez à modifier le logiciel du système avec des outils tiers (pip dans ce cas), vous n'avez aucune garantie sur l'état de votre système. Une autre raison est que sudo peut vous apporter des problèmes que vous n'auriez aucune chance ou que vous n'auriez qu'une très petite chance d'avoir autrement. Voir par exemple Inadéquation entre sys.executable et sys.version en Python
Les distributeurs sont conscients de ce problème et essaient de l'atténuer. Par exemple Fedora - Rendre sudo pip sûr et Debian - paquets dist au lieu de paquets site .
la source
Utiliser pip de cette façon signifie que vous lui faites confiance au niveau que vous lui permettez de faire quoi que ce soit à votre système. Non seulement pip, mais aussi tout code qu'il téléchargera et exécutera à partir de sources auxquelles vous ne pouvez pas faire confiance et qui peuvent être malveillants.
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 que vous ne souhaitez pas utiliser l'environnement virtuel, vous pouvez créer un utilisateur spécifique disposant du privilège d'écriture dans le répertoire d'installation de python et l'utiliser pour pip. De cette façon, vous contrôlez mieux ce que pip peut faire et ne pas faire. Et vous pouvez utiliser
sudo -u
pour cela!la source
site-packages
?pip
lui-même, IPython, django, pygments, ...), vous aurez donc également besoin d'accéder au répertoire danspip
(aucune autre modification du système, comme un nouveau répertoire personnel, etc. n'est nécessaire)? Après cela, je suppose que je change le propriétaire desite-packages
à cet utilisateur, n'est- ce pas?La seule chose qui "ne va pas"
sudo
est que cela fonctionne en tant que super utilisateur, c'est-à-dire que vous pouvez potentiellement détruire une installation avec la mauvaise commande. Comme PIP est une maintenance de package pour un programme particulier, vous auriez besoin d'un tel accès de toute façon pour apporter des modifications ...la source