Mengapa perintah setebool dari SELINUX begitu lama dan lambat?

9

Saya perhatikan perintah setebool membutuhkan waktu lebih lama daripada perintah linux lainnya. Seperti:

setsebool -P ftp_home_dir ON

Karena penasaran, saya ingin tahu mengapa perintah "setebool" perlu waktu yang lama untuk menyelesaikan tugas?

Xianlin
sumber
1
time setsebool -P ftp_home_dir ON. Berapa lama Anda mempertimbangkan waktu yang lama?
jordanm
1
mencoba perintah seperti di atas dan waktu "nyata" adalah sekitar 30 detik. Biasanya perintah linux normal time setenforce 0akan memberikan waktu nyata "nyata" sekitar 0,011 detik. Saya merasa 30 detik agak lama dan bertanya-tanya apa yang terjadi di backend?
Xianlin
strace -f setsebool -P ftp_home_dir ONdan lihat di mana tepatnya ini menghabiskan waktu yang manis.
Flup
Saya pikir saya perlu lebih banyak pengetahuan pemrograman untuk memahami output strace .. Saya kira itu karena selinux melibatkan terlalu banyak perubahan tingkat "dalam" pada sistem linux dan itu sebabnya dibutuhkan begitu banyak waktu untuk menyelesaikan satu perintah.
Xianlin
Apakah SELinux perlu mengkompilasi ulang aturannya saat Anda membuat perubahan? Saya pikir saya ingat pernah membaca itu di suatu tempat.
functionvoid

Jawaban:

5

Alasannya sangat lambat adalah karena ia melakukan kompilasi penuh kebijakan ketika Anda menjalankan perintah. (Lihat BZ ini: https://bugzilla.redhat.com/show_bug.cgi?id=811656 , Dan Walsh adalah salah satu pemelihara kebijakan SELinux tentang RHEL dan Fedora). Itu telah diperbaiki di versi Fedora yang lebih baru, yang berarti kemungkinan akan berakhir di EL7 dan mungkin di rilis EL6 nanti.

jsbillings
sumber