Saya menulis layanan / aplikasi biner tunggal yang sedang saya coba jalankan pada Fedora 24, ia berjalan menggunakan systemd, biner digunakan untuk /srv/bot
layanan / aplikasi yang saya tulis ini perlu membuat / membuka / membaca dan mengganti nama file dalam direktori ini.
Saya pertama kali mulai membuat kebijakan baru berdasarkan SELinux: izinkan proses untuk membuat file apa pun di direktori tertentu
tetapi ketika aplikasi saya perlu mengganti nama, output mendapat peringatan:
#!!!! WARNING: 'var_t' is a base type.
allow init_t var_t:file rename;
Saya mencari-cari di sekitar dan menemukan bahwa saya harus menggunakan label SELinux yang lebih spesifik daripada tipe dasar, tetapi semua contoh online menunjukkan label yang ada dari httpd / nginx / etc.
Apakah ada cara saya bisa membuat label khusus hanya untuk aplikasi saya sendiri?
Ide saya adalah membuat sesuatu seperti myapp_var_t, gunakan
semanage fcontext -a -t my_app_var_t '/srv/bot(/.*)?'
restorecon -R -v /srv/bot
dan .pp
file khusus yang akan menggunakan tipe khusus ini
Jika ada cara yang lebih baik untuk menyelesaikannya, itu juga berfungsi.
Terima kasih
Memperbarui
Setelah lebih banyak mencari di sekitar saya pikir istilah yang tepat untuk apa yang ingin saya lakukan adalah membuat yang baru types
yang membawa saya ke
https://docs.fedoraproject.org/en-US/Fedora/13/html/SELinux_FAQ/index.html#id3036916
yang pada dasarnya mengatakan, jalankan
sepolgen /path/to/binary
dan saya bisa mendapatkan templat yang kemudian bisa dikompilasi menjadi file pp dan memuat, masih mendapatkan beberapa kesalahan tetapi sepertinya saya lebih dekat dengan apa yang ingin saya lakukan.
Jika saya membuatnya berfungsi, saya akan memperbarui posting ini
sepolgen /path/to/binary
memuntahkan kesalahan sintaks untuk saya. Saya menggunakan RHEL 7.6. Saya pikirsepolgen --application /path/to/binary
sintaksis yang tepat jika tujuan Anda adalah untuk menulis kebijakan untuk aplikasi tertentu ??.te
berkas juga melempar kesalahan sintaks bagi saya ketika kompilasi modul:app.te:5:ERROR 'This block has no require section.' at token 'files_type' on line 5:
. Dan jika saya menambahkanrequire
bagian, saya mendapatkan:ERROR 'syntax error' at token 'files_type' on line 13: