Kadang-kadang saya menemukan komentar atau tanggapan yang menyatakan dengan tegas bahwa berjalan di pip
bawah sudo
adalah "salah" atau "buruk", tetapi ada beberapa kasus (termasuk cara saya menyiapkan banyak alat) yang jauh lebih sederhana, atau bahkan perlu untuk jalankan seperti itu.
Apa risiko yang terkait dengan berjalan di pip
bawah sudo
?
Perhatikan bahwa pertanyaan ini tidak sama dengan pertanyaan ini , yang, terlepas dari judulnya, tidak memberikan informasi tentang risiko. Ini juga bukan pertanyaan tentang bagaimana menghindari penggunaan sudo
, tetapi tentang secara khusus mengapa seseorang menginginkannya.
pip
atau untuk menjalankan selanjutnya dari apa yang diinstal?sudo
atau tidak ketika sayapip
, kan? Setelah dipasang, kita semua berisiko, tidak peduli bagaimana itu bisa ada di sana?sudo
tetapi juga masalah izin ini dengan menginstal paket di tempat lain (misalnya di virtualenv). Melakukannya bahkan mungkin lebih baik dan lebih dapat diandalkan meskipun mengabaikan semua masalah keamanan.sudo
Anda berikan hak akses root; itulah inti darisudo
, dan tentu saja tidak khusus untukpip
.Selain risiko keamanan yang jelas (yang menurut saya sebenarnya rendah ketika Anda menginstal perangkat lunak lho), ada jawaban lain yang ada alasan lain. Python yang disertakan dengan sistem adalah bagian dari sistem ini dan ketika Anda ingin mengelola sistem, Anda menggunakan alat yang dirancang untuk pemeliharaan sistem seperti manajer paket jika menginstal / memutakhirkan / mencopot pemasangan perangkat lunak. Ketika Anda mulai memodifikasi perangkat lunak sistem dengan alat pihak ketiga (pip dalam contoh ini) maka Anda tidak memiliki jaminan tentang status sistem Anda. Namun alasan lain adalah bahwa sudo dapat membawa masalah yang tidak akan Anda miliki atau miliki peluang yang sangat kecil. Lihat misalnya ketidakcocokan antara sys.executable dan sys.version di Python
Distro menyadari masalah ini dan mencoba menguranginya. Misalnya Fedora - Membuat sudo pip aman dan Debian - dist-packages alih-alih paket situs .
sumber
Menggunakan pip seperti itu berarti Anda mempercayainya ke tingkat yang Anda izinkan untuk membuat apa pun ke sistem Anda. Tidak hanya pip, tetapi juga kode apa pun yang akan diunduh dan dijalankan dari sumber yang mungkin tidak Anda percayai dan itu bisa berbahaya.
Dan pip tidak membutuhkan semua hak istimewa itu, hanya akses tulis ke file dan direktori tertentu. Jika Anda tidak dapat menggunakan manajer paket sistem Anda dan tidak ingin menggunakan cara lingkungan virtual, Anda dapat membuat pengguna tertentu yang memiliki hak istimewa menulis ke direktori instalasi python dan menggunakannya untuk pip. Dengan cara itu Anda lebih mengontrol apa yang dapat dilakukan dan tidak dilakukan pip. Dan Anda bisa menggunakannya
sudo -u
untuk itu!sumber
site-packages
?pip
itu sendiri, IPython, django, pygments, ...) jadi Anda juga memerlukan akses ke direktori mana pun tempat mereka menginstal sendiri.pip
(tidak ada perubahan lain pada sistem, seperti direktori home baru, dll. Perlu)? Setelah itu saya menganggap saya baru saja mengubah pemiliksite-packages
menjadi pengguna itu, bukan?Satu-satunya hal yang "salah"
sudo
adalah bahwa ia BERLAKU sebagai Pengguna Super ala root yang berarti Anda berpotensi merusak instalasi dengan perintah yang salah. Karena PIP adalah pemeliharaan paket untuk program tertentu, Anda akan memerlukan akses tersebut untuk membuat perubahan ...sumber