Warum ist Python für Windows nicht in% PROGRAMFILES% ("C: \ Programme") installiert?

Antworten:

22

Anscheinend ist dies der Grund für eine 7-jährige Diskussion unter Python-Entwicklern.

Die folgenden Gründe wurden von den Autoren angegeben:

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

Vor langer Zeit hat Python (standardmäßig) unter "Programme" installiert. Ich habe das geändert, weil durch den eingebetteten Speicherplatz endlose Probleme entstanden sind und seltenere, aber subtilere Probleme, weil "Programme" kein DOSish 8.3-Name sind. Insgesamt denke ich immer noch, dass es eine gute Veränderung war.

Beachten Sie, dass im Gegensatz zu den meisten Windows - Anwendungen (die GUI-basierte) sind Programmiersprachen bestimmt stark von der Kommandozeile, aufgerufen durch Skripte verwendet werden soll, und so weiter. Das ist es, was einen Platz auf dem Pfad unendlich fehleranfällig macht. In WinXP Pro bemerkte ich, dass MS immer noch darauf achtete, seine eigenen Befehlszeilen- / Skript-Tools (sort.exe, ipconfig.exe, cscript.exe, ..., sogar notepad.exe) unter reinem DOSish 8.3 speicherplatzfrei zu machen wege ;-)


Nebenbei : Aufgrund der Möglichkeit der Rechteerweiterung kann die Verwendung von C: \ anstelle von C: \ Programme \ ein Sicherheitsrisiko darstellen:

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

Das Standard-Installationszielverzeichnis, in dem Python unter Windows installiert wird, befindet sich direkt unter dem Stammverzeichnis des Systemlaufwerks (z. B. "C: \ python24"). Die vom Stammverzeichnis an das python24-Verzeichnis vererbten Datei- und Verzeichnisberechtigungen sind nicht sicher genug, um Anwendungsbinärdateien zu speichern.

Microsoft hat in ihrer unendlichen Weisheit entschieden, dass das Stammverzeichnis des Systemlaufwerks regulären Benutzern (Nichtadministratoren) das Erstellen von Verzeichnissen und Dateien ermöglichen soll. Dieser Berechtigungssatz wird an das Python-Verzeichnis vererbt, wenn es am Standardspeicherort erstellt wird (z. B. "C: \ python24" oder was auch immer).

Wenn Sie das Python-Verzeichnis ändern möchten, um den beschriebenen Eskalationsangriff zu vermeiden, sollte es möglich sein, das \ Python-Verzeichnis mit icacls zu ändern .

Chris
quelle
Fast niemand nennt Python mit seinem vollen Pfad. Der richtige Weg ist das Ablegen des binOrdners %PATH%und Sie müssen sich nicht mehr mit den Leerzeichen befassen. Und es ist nicht wahr, dass XP Pro seine Befehlszeilenprogramme in DOS 8.3-Pfaden hat. Während ihre Pfade im Allgemeinen keine Leerzeichen enthalten, haben viele Dateien eine Länge von mehr als 8 Zeichen wie systeminfo.exe
phuclv