Pengaturan kemampuan pada skrip tidak akan efektif. Ini situasi yang sama karena tidak berfungsi setuidsedikit pada skrip. Mirip seperti pada kasus terakhir ini adalah implementasi bagaimana execvemenangani shebang dan alasan keamanan di belakangnya (untuk detail lihat: Izinkan setuid pada skrip shell ).
Saya pikir Anda memiliki opsi ini
atur kemampuan pada juru bahasa itu sendiri (sebenarnya lebih tepatnya salinannya)
- Anda memiliki masalah di sini bahwa siapa pun yang dapat menjalankannya akan berjalan dengan kapabilitas yang ditinggikan (dapat menjalankan beberapa skrip sewenang-wenang atau memulainya secara interaktif)
tulis wrapper executable yang akan memiliki logika hardcoded untuk mengeksekusi skrip Anda, dan atur kemampuan yang diinginkan pada executable ini
- pastikan tidak ada yang dapat memodifikasi atau menghapus / mengganti skrip
- masih dengan melakukan
chrootsalah satu dapat menyalahgunakan pembungkus tersebut
Dalam kedua kasus Anda harus memastikan kemampuan yang ditetapkan akan bertahan execvedengan menetapkan inheritablebendera. Anda mungkin juga menggunakan pam_capdidistribusikan dengan libcapbiasanya, untuk benar-benar mengaktifkan kemampuan yang diinginkan oleh konfigurasi hanya untuk pengguna yang dipilih.
Dan secara umum Anda ingin memastikan tidak ada yang dapat mengubah perilaku juru bahasa Anda dengan mengubah lingkungan mis. PYTHON_PATHatau yang serupa.