
私は次のカスタムselinuxモジュールを書いています。
require {
type my_app_t;
type my_app_file_t;
class file { getattr lock open read write execute execute_no_trans ioctl append setattr };
class dir { write search getattr };
}
allow my_app_t my_app_file_t:file { append setattr write getattr execute read open execute_no_trans lock ioctl};
allow my_app_t my_app_file_t:dir { write search getattr};
これはほとんどうまく機能しますが、audit.logに新しい拒否が表示されるたびに新しい権限を追加するのに疲れました。特定のコンテキストに対してファイル/ディレクトリに対するすべての権限のみを許可する方法はありますか?たとえば、
require {
type my_app_t;
type my_app_file_t;
class file { * };
class dir { * };
}
allow my_app_t my_app_file_t:file { * };
allow my_app_t my_app_file_t:dir { * };
答え1
参照戦略マクロの使用を検討する必要があります。参照ポリシーマクロを使用すると、manage_files_pattern
マクロを使用してすべてのアクセスを許可できます。例:
manage_files_pattern(my_app_t, my_app_file_t, my_app_file_t)
しかもマクロその他一般的に使用されるモードの場合/policy/support
参照ポリシーソースから。
参照ポリシーモジュールで定義されている場合は、my_app_t
アクセスを許可するために使用できるインターフェイスがすでに存在する可能性があります。インターフェイスは参照戦略APIドキュメント(selinux-policy-doc
パッケージで提供)に文書化されており、以下を使用して使用することもできます。オンライン(しかし少し昔ながらです)。
参照ポリシーモジュールを構築する最も簡単な方法は、ディストリビューションのSELinuxポリシー開発パッケージ(または同様のパッケージ)のmakefileを使用することです。selinux-policy-devel
例: make -f /usr/share/selinux/devel/Makefile my_app.pp
。