Tôi đã viết một dịch vụ / ứng dụng nhị phân duy nhất mà tôi đang cố chạy trên Fedora 24, nó chạy bằng systemd, tệp nhị phân được triển khai để /srv/bot
dịch vụ / ứng dụng này tôi đã viết cần tạo / mở / đọc và đổi tên các tệp trong thư mục này.
Lần đầu tiên tôi bắt đầu tạo một chính sách mới dựa trên SELinux: cho phép một quá trình tạo bất kỳ tệp nào trong một thư mục nhất định
nhưng khi ứng dụng của tôi cần đổi tên, đầu ra có cảnh báo:
#!!!! WARNING: 'var_t' is a base type.
allow init_t var_t:file rename;
Tôi đã đi vòng quanh và tôi phát hiện ra rằng tôi nên sử dụng nhãn SELinux cụ thể hơn loại cơ sở, nhưng tất cả các ví dụ trực tuyến hiển thị cho bạn các nhãn hiện có từ httpd / nginx / vv.
Có cách nào để tôi có thể tạo nhãn tùy chỉnh chỉ cho ứng dụng của mình không?
Ý tưởng của tôi là tạo ra một cái gì đó như myapp_var_t, sử dụng
semanage fcontext -a -t my_app_var_t '/srv/bot(/.*)?'
restorecon -R -v /srv/bot
và một .pp
tệp tùy chỉnh sẽ sử dụng loại tùy chỉnh này
Nếu có một cách tốt hơn để giải quyết nó, điều đó cũng làm việc.
Cảm ơn
Cập nhật
Sau khi tìm kiếm nhiều hơn, tôi nghĩ thuật ngữ thích hợp cho những gì tôi muốn làm là tạo ra cái mới types
dẫn tôi đến
https://docs.fedoraproject.org/en-US/Fedora/13/html/SELinux_FAQ/index.html#id3036916
về cơ bản là nói, chạy
sepolgen /path/to/binary
và tôi đã có thể lấy một mẫu mà sau đó tôi có thể biên dịch thành tệp pp và tải, vẫn gặp một số lỗi nhưng có vẻ như tôi gần với những gì tôi muốn làm hơn.
Nếu tôi làm cho nó hoạt động, tôi sẽ cập nhật bài viết này