ฉันเขียนบริการ / แอพไบนารีตัวเดียวที่ฉันพยายามเรียกใช้บน Fedora 24 มันทำงานโดยใช้ systemd ไบนารีถูกปรับใช้ /srv/bot
บริการ / แอพนี้ที่ฉันเขียนต้องสร้าง / เปิด / อ่านและเปลี่ยนชื่อไฟล์ในไดเรกทอรีนี้
ฉันเริ่มสร้างนโยบายใหม่โดยใช้SELinux: อนุญาตให้กระบวนการสร้างไฟล์ใด ๆ ในไดเรกทอรีหนึ่ง
แต่เมื่อแอพของฉันจำเป็นต้องเปลี่ยนชื่อเอาต์พุตมีคำเตือน:
#!!!! WARNING: 'var_t' is a base type.
allow init_t var_t:file rename;
ฉันไปรอบ ๆ และพบว่าฉันควรใช้ป้ายกำกับ SELinux ที่เฉพาะเจาะจงมากกว่าประเภทฐาน แต่ตัวอย่างทั้งหมดออนไลน์แสดงฉลากที่มีอยู่จาก httpd / nginx / etc ให้คุณเห็น
มีวิธีที่ฉันสามารถสร้างป้ายกำกับที่กำหนดเองสำหรับแอปของฉันเองได้หรือไม่
ความคิดของฉันคือการสร้างบางสิ่งบางอย่างเช่น myapp_var_t ใช้
semanage fcontext -a -t my_app_var_t '/srv/bot(/.*)?'
restorecon -R -v /srv/bot
และ.pp
ไฟล์ที่กำหนดเองที่จะใช้ประเภทที่กำหนดเองนี้
หากมีวิธีที่ดีกว่าในการแก้ไขมันก็ใช้ได้เช่นกัน
ขอบคุณ
ปรับปรุง
หลังจากค้นหาเพิ่มเติมฉันคิดว่าคำที่เหมาะสมสำหรับสิ่งที่ฉันต้องการทำคือการสร้างใหม่types
ซึ่งทำให้ฉันไปที่
https://docs.fedoraproject.org/en-US/Fedora/13/html/SELinux_FAQ/index.html#id3036916
ซึ่งโดยทั่วไปบอกว่าวิ่ง
sepolgen /path/to/binary
และฉันก็สามารถรับแม่แบบที่ฉันสามารถรวบรวมเป็นไฟล์ pp และโหลดยังคงได้รับข้อผิดพลาดบางอย่าง แต่ดูเหมือนว่าฉันใกล้กับสิ่งที่ฉันต้องการจะทำ
ถ้าฉันทำให้มันใช้งานได้ฉันจะอัพเดทโพสต์นี้