Por que o Python para Windows não está instalado em% PROGRAMFILES% (“C: \ Program Files”)?

18

O Python foi originalmente instalado em C: \ Program Files \ Python, mas o alterou por volta de 1.5. Qual foi o raciocínio por trás dessa decisão? É uma má ideia mudar o diretório de volta e, em caso afirmativo, por quê?

    
por Chris 08.10.2013 / 16:04

1 resposta

21

Aparentemente, essa é a causa de uma discussão de 7 anos entre os desenvolvedores de Python.

O seguinte raciocínio foi dado pelos autores:

Author: Tim Peters (tim.peters) * (Python committer) Date: 2006-03-22 20:27

A long time ago, Python did install (by default) under "Program Files". I changed that, because of the endless problems created by the frickin' embedded space, and rarer but subtler problems due to "Program Files" not being a DOSish 8.3 name. Overall I still think it was a good change.

Note that, unlike most Windows applications (which are GUI-based), programming languages are intended to be used heavily from the command line, invoked by scripts, and so on. That's what makes a space in the path endlessly error-prone. In WinXP Pro, I noticed that MS was still careful to put its own command-line/script tools (sort.exe, ipconfig.exe, cscript.exe, ..., even notepad.exe) under pure DOSish 8.3 space-free paths ;-)

Aside : Devido à possibilidade de escalonamento de privilégios, o uso de C: \ em vez de C: \ Program Files \ pode ser um risco à segurança:

Author: Mika Eloranta (mel) Date: 2005-09-07 21:34

The default installation target directory where Python is installation on Windows is directly under the system drive's root directory (e.g. "C:\python24"). The file and directory permissions inherited by the python24-directory from the root directory are not secure enough for keeping application binaries.

Microsoft has, in their infinite wisdom, decided that the root directory of the system drive should allow regular (non-admin) users to create directories and files there. This set of permissions is inherited by the python directory when it is created in the default location (i.e. "C:\python24" or whatever).

Se você quiser modificar o diretório Python para evitar o ataque de escalonamento de privilégios discutido, deve ser possível modificar o diretório \ Python usando icacls .

    
por 08.10.2013 / 16:10