Mengapa Python untuk Windows tidak diinstal di% PROGRAMFILES% ("C: \ Program Files")?

Jawaban:

22

Rupanya ini adalah penyebab diskusi 7 tahun di antara pengembang Python.

Dasar pemikiran berikut telah diberikan oleh penulis:

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

Dahulu kala, Python menginstal (secara default) di bawah "Program Files". Saya mengubah itu, karena masalah tak berujung yang dibuat oleh ruang yang disematkan frickin, dan masalah yang lebih jarang tetapi lebih halus karena "Program Files" bukan nama DOS 8.3. Secara keseluruhan saya masih berpikir itu adalah perubahan yang baik.

Perhatikan bahwa, tidak seperti kebanyakan aplikasi Windows (yang berbasis GUI), bahasa pemrograman dimaksudkan untuk banyak digunakan dari baris perintah, dipanggil oleh skrip, dan sebagainya. Itulah yang membuat ruang di jalan tanpa henti rawan kesalahan. Di WinXP Pro, saya perhatikan bahwa MS masih berhati-hati untuk menempatkan alat baris perintah / skripnya sendiri (sort.exe, ipconfig.exe, cscript.exe, ..., bahkan notepad.exe) di bawah DOS murni 8,3 ruang-bebas jalur ;-)


Selain itu : Karena kemungkinan eskalasi hak istimewa, menggunakan C: \ alih-alih C: \ Program Files \ mungkin merupakan bahaya keamanan:

Penulis: Mika Eloranta (mel) Tanggal: 2005-09-07 21:34

Direktori target instalasi default tempat Python diinstal pada Windows secara langsung di bawah direktori root drive sistem (mis. "C: \ python24"). Izin file dan direktori yang diwarisi oleh direktori python24 dari direktori root tidak cukup aman untuk menjaga aplikasi biner.

Microsoft, dalam kebijaksanaannya yang tak terbatas, memutuskan bahwa direktori root drive sistem harus memungkinkan pengguna biasa (non-admin) untuk membuat direktori dan file di sana. Serangkaian izin ini diwarisi oleh direktori python ketika dibuat di lokasi default (yaitu "C: \ python24" atau apa pun).

Jika Anda ingin memodifikasi direktori Python untuk menghindari serangan eskalasi hak istimewa yang dibahas, Anda harus dapat memodifikasi direktori \ Python menggunakan icacls .

Chris
sumber
hampir tidak ada yang memanggil python dengan path lengkapnya. Cara yang benar adalah meletakkan binfolder itu ke dalam %PATH%dan Anda tidak perlu lagi berurusan dengan spasi. Dan itu tidak benar bahwa XP Pro memiliki executable baris perintah di jalur DOS 8.3. Sementara jalur mereka umumnya tidak memiliki spasi, banyak file memiliki panjang lebih dari 8 karakter seperti systeminfo.exe
phuclv