web-dev-qa-db-ja.com

Python for Windowsが%PROGRAMFILES%( "C:\ Program Files")にインストールされていないのはなぜですか?

Pythonは元々C:\ Program Files\Pythonにインストールされていましたが、 変更 1.5前後でした。その決定の背後にある理由は何でしたか?ディレクトリを元に戻すのは悪い考えですか、もしそうなら、なぜですか?

23
Chris

どうやらこれが 7年間の議論 Python開発者の間での原因です。

以下の根拠が著者によって与えられました:

作成者:Tim Peters(tim.peters)*(Pythonコミッター)日付:2006-03-22 20:27

昔はPythonが(デフォルトで)[プログラムファイル]にインストールされていました。frickinの埋め込みスペースによって作成される無限の問題と、 "Program Files"はDOSish 8.3の名前ではありません。

ほとんどのWindowsアプリケーション(GUIベースのアプリケーション)とは異なり、プログラミング言語はintendedであり、コマンドラインから頻繁に使用されたり、スクリプトによって呼び出されたりすることに注意してください。これが、パスのスペースを際限なくエラーが発生しやすくするものです。 WinXP Proで、MSが独自のコマンドライン/スクリプトツール(sort.exe、ipconfig.exe、cscript.exe、...、さらにはnotepad.exe)を純粋なDOSish 8.3の空き領域の下に配置するようにまだ注意していることに気付きましたパス;-)


余談:特権の昇格の可能性があるため、C:\ Program Files \の代わりにC:\を使用すると、セキュリティ上の問題が発生する可能性があります。

著者:Mika Eloranta(mel)日付:2005-09-07 21:34

PythonがWindowsにインストールされている場合のデフォルトのインストールターゲットディレクトリは、システムドライブのルートディレクトリの直下にあります(例: "C:\ python24")。ファイルとディレクトリのアクセス許可は、ルートディレクトリは、アプリケーションのバイナリを保持するのに十分安全ではありません。

マイクロソフトは、その無限の知恵で、システムドライブのルートディレクトリに通常の(非管理者)ユーザーがそこにディレクトリとファイルを作成できるようにすることを決定しました。この権限のセットは、デフォルトの場所(「C:\ python24」など)に作成されたときに、pythonディレクトリによって継承されます。

説明した権限昇格攻撃を回避するためにPythonディレクトリを変更する場合は、 icacls を使用して\ Pythonディレクトリを変更できるはずです。

22
Chris