From: jason@perfinion.com (Jason Zaman)
Date: Sun, 4 Jun 2017 23:23:48 +0800
Subject: [refpolicy] [PATCH v2 4/6] consolekit: introduce
consolekit_use_inhibit_lock interface
In-Reply-To: <20170604152350.27036-1-jason@perfinion.com>
References: <20170604152350.27036-1-jason@perfinion.com>
Message-ID: <20170604152350.27036-4-jason@perfinion.com>
To: refpolicy@oss.tresys.com
List-Id: refpolicy.oss.tresys.com
Applications hold FDs while they hold the lock.
Implements this API:
https://www.freedesktop.org/wiki/Software/systemd/inhibit/
---
changes from v1:
- rw_fifo_file_perms -> rw_inherited_fifo_file_perms
- updated the description in the interface with more detail from the previous summary
- Added the manage_fifo_fle_perms to the .te file in this patch instead of in the previous one
---
consolekit.if | 23 +++++++++++++++++++++++
consolekit.te | 1 +
2 files changed, 24 insertions(+)
diff --git a/consolekit.if b/consolekit.if
index 5b830ec..e5cc843 100644
--- a/consolekit.if
+++ b/consolekit.if
@@ -42,6 +42,29 @@ interface(`consolekit_dbus_chat',`
########################################
##
+## Use consolekit inhibit locks.
+##
+## The program gets passed an FD to a fifo_file to hold.
+## When the application is done with the lock, it closes the FD.
+## Implements this API: https://www.freedesktop.org/wiki/Software/systemd/inhibit/
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`consolekit_use_inhibit_lock',`
+ gen_require(`
+ type consolekit_t, consolekit_var_run_t;
+ ')
+
+ allow $1 consolekit_t:fd use;
+ allow $1 consolekit_var_run_t:fifo_file rw_inherited_fifo_file_perms;
+')
+
+########################################
+##
## Read consolekit log files.
##
##
diff --git a/consolekit.te b/consolekit.te
index ad7ea36..ea4db82 100644
--- a/consolekit.te
+++ b/consolekit.te
@@ -40,6 +40,7 @@ logging_log_filetrans(consolekit_t, consolekit_log_t, file)
manage_dirs_pattern(consolekit_t, consolekit_var_run_t, consolekit_var_run_t)
manage_files_pattern(consolekit_t, consolekit_var_run_t, consolekit_var_run_t)
+manage_fifo_files_pattern(consolekit_t, consolekit_var_run_t, consolekit_var_run_t)
files_pid_filetrans(consolekit_t, consolekit_var_run_t, { dir file })
kernel_read_system_state(consolekit_t)
--
2.13.0