Por que o Python para Windows não está instalado em% PROGRAMFILES% ("C: \ Arquivos de Programas")?

Respostas:

22

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

Os seguintes argumentos foram dados pelos autores:

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

Há muito tempo, o Python foi instalado (por padrão) em "Arquivos de Programa". Eu mudei isso, por causa dos problemas intermináveis ​​criados pelo espaço embutido e dos problemas mais raros, porém mais sutis, devido ao fato de "Arquivos de Programa" não ser um nome do DOSish 8.3. No geral, ainda acho que foi uma boa mudança.

Note-se que, ao contrário da maioria dos aplicativos Windows (que são baseados em GUI), linguagens de programação são destinados a ser muito usado na linha de comando, invocado por scripts, e assim por diante. É isso que torna um espaço no caminho infinitamente propenso a erros. No WinXP Pro, notei que a MS ainda tinha o cuidado de colocar suas próprias ferramentas de linha de comando / script (sort.exe, ipconfig.exe, cscript.exe, ... e até mesmo o notepad.exe) no DOSish 8.3 puro, sem espaço. caminhos ;-)


Além : Devido à possibilidade de escalonamento de privilégios, o uso de C: \ em vez de C: \ Arquivos de Programas \ pode ser um risco à segurança:

Autor: Mika Eloranta (mel) Data: 2005-09-07 21:34

O diretório de destino da instalação padrão em que o Python está instalado no Windows está diretamente no diretório raiz da unidade do sistema (por exemplo, "C: \ python24"). As permissões de arquivo e diretório herdadas pelo diretório python24 do diretório raiz não são seguras o suficiente para manter os binários do aplicativo.

Em sua infinita sabedoria, a Microsoft decidiu que o diretório raiz da unidade do sistema deve permitir que usuários comuns (não administradores) criem diretórios e arquivos lá. Esse conjunto de permissões é herdado pelo diretório python quando ele é criado no local padrão (por exemplo, "C: \ python24" ou o que for).

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

Chris
fonte
quase ninguém chama python com seu caminho completo. A maneira correta é colocar a binpasta %PATH%e você não precisará mais lidar com os espaços. E não é verdade que o XP Pro tenha seus executáveis ​​de linha de comando nos caminhos do DOS 8.3. Embora seus caminhos geralmente não tenham espaços, muitos arquivos têm mais de 8 caracteres, como systeminfo.exe
phuclv 19/01