Re: F26 Self Contained Change: Making sudo pip Safe (Again)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2017-01-20 at 12:07 +0100, Jan Kurik wrote:
> = Proposed Self Contained Change: Making sudo pip Safe (Again) =
> https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
> 
> Change owner(s):
> * Michal Cyprian <mcyprian AT redhat DOT com>
> * Petr Viktorin <pviktori AT redhat DOT com>
> * Tomas Orsava <torsava AT redhat DOT com>
> * Miro Hroncok <mhroncok AT redhat DOT com>
> 
> 
> At the present time, running sudo pip3 in Fedora is not safe. Pip
> shares its installation directory with dnf, can remove dnf-managed
> files and generally break the Python 3 interpreter. We propose a
> series of measures that will make it safe to use.
> 
> 
> == Detailed Description ==
> The danger of using sudo pip3 stems from the fact that both Python dnf
> packages and sudo pip3 install modules to the same location, namely
> /usr/lib/pythonX.Y/site-packages.
> 
> We aim to move the working directory for sudo pip3 to a more
> appropriate location: /usr/local/lib/pythonX.Y/site-packages, and
> modify the Python 3 interpreter in Fedora to scan both above mentioned
> locations when importing modules.

This might also mean that we start using Python modules installed from
self-compiled applications, which might not be intended (we do not
include /usr/local/lib(64) in the default ldconfig path, AFAIK).

>  In addition, system-python—a
> stripped down version of Python 3 for use by system tools—will not
> read the sudo pip3 install location, making it more secure by being
> less susceptible to interference by user-downloaded modules.
> 
> From the technical standpoint, this will be accomplished by changing
> the sys.prefix setting in the /usr/bin/python3 executable from /usr/
> to /usr/local. pip3 will thereafter use this prefix when determining
> where to install modules.

This seems like quite a significant change. Have you investigated any
potential unexpected consequences of this? Do setuptools etc. use this
setting in any way? Have you checked for existing code reading it for
any reason? Have you checked what else Python itself uses it for, and
if any of that could be negatively affected?

>  In addition, the original path
> /usr/lib/pythonX.Y/site-packages will be added to the sys.path
> variable (so that modules at that location are still processed when
> importing), because this path will not be automatically scanned
> anymore as it no longer lies inside the sys.prefix path. These
> settings, however, will not be modified for the system-python binary,
> and the %{__python3} macro will be changed from /usr/bin/python3 to
> /usr/libexec/system-python. Therefore, Python dnf packages will
> continue to be built with the correct installation path for system
> modules.

> Note that using sudo pip3 is not strictly necessary, as using pip3
> install --user would satisfy the vast majority of use cases.
> Nevertheless, sudo pip is far too prevalent an instruction in various
> guides and installation notes throughout the Internet that there is
> little hope of changing users' behaviour in this regard.

Presumably this change is applied only to Python 3 because there is no
'system-python-2'?
-- 
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net
http://www.happyassassin.net
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux