私は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ファイルにコンパイルして読み込むことができるテンプレートを取得することができましたが、それでもいくつかのエラーが発生しますが、やりたいことに近いように見えます。
機能するようになったら、この投稿を更新します