From 4be8dd10b9a273eef78e2221270826d6305b575b Mon Sep 17 00:00:00 2001 From: Chris PeBenito Date: Mon, 28 Sep 2009 15:40:06 -0400 Subject: [PATCH] add seunshare from dan. --- Changelog | 1 + policy/modules/apps/seunshare.fc | 1 + policy/modules/apps/seunshare.if | 72 ++++++++++++++++++++++++++++++++ policy/modules/apps/seunshare.te | 35 ++++++++++++++++ 4 files changed, 109 insertions(+) create mode 100644 policy/modules/apps/seunshare.fc create mode 100644 policy/modules/apps/seunshare.if create mode 100644 policy/modules/apps/seunshare.te diff --git a/Changelog b/Changelog index 8bb118145..0918a399a 100644 --- a/Changelog +++ b/Changelog @@ -18,6 +18,7 @@ modemmanager(Dan Walsh) nslcd (Dan Walsh) rtkit (Dan Walsh) + seunshare (Dan Walsh) shorewall (Dan Walsh) xscreensaver (Corentin Labbe) diff --git a/policy/modules/apps/seunshare.fc b/policy/modules/apps/seunshare.fc new file mode 100644 index 000000000..30a4b9fd0 --- /dev/null +++ b/policy/modules/apps/seunshare.fc @@ -0,0 +1 @@ +/usr/sbin/seunshare -- gen_context(system_u:object_r:seunshare_exec_t,s0) diff --git a/policy/modules/apps/seunshare.if b/policy/modules/apps/seunshare.if new file mode 100644 index 000000000..dbdf4485b --- /dev/null +++ b/policy/modules/apps/seunshare.if @@ -0,0 +1,72 @@ +## Filesystem namespacing/polyinstantiation application. + +######################################## +## +## Execute a domain transition to run seunshare. +## +## +## +## Domain allowed to transition. +## +## +# +interface(`seunshare_domtrans',` + gen_require(` + type seunshare_t, seunshare_exec_t; + ') + + domtrans_pattern($1, seunshare_exec_t, seunshare_t) +') + +######################################## +## +## Execute seunshare in the seunshare domain, and +## allow the specified role the seunshare domain. +## +## +## +## Domain allowed access. +## +## +## +## +## Role allowed access. +## +## +# +interface(`seunshare_run',` + gen_require(` + type seunshare_t; + ') + + seunshare_domtrans($1) + role $2 types seunshare_t; +') + +######################################## +## +## Role access for seunshare +## +## +## +## Role allowed access. +## +## +## +## +## User domain for the role. +## +## +# +interface(`seunshare_role',` + gen_require(` + type seunshare_t; + ') + + role $2 types seunshare_t; + + seunshare_domtrans($1) + + ps_process_pattern($2, seunshare_t) + allow $2 seunshare_t:process signal; +') diff --git a/policy/modules/apps/seunshare.te b/policy/modules/apps/seunshare.te new file mode 100644 index 000000000..dcec4bf14 --- /dev/null +++ b/policy/modules/apps/seunshare.te @@ -0,0 +1,35 @@ + +policy_module(seunshare, 1.0.0) + +######################################## +# +# Declarations +# + +type seunshare_t; +type seunshare_exec_t; +application_domain(seunshare_t, seunshare_exec_t) +role system_r types seunshare_t; + +######################################## +# +# seunshare local policy +# + +allow seunshare_t self:capability setpcap; +allow seunshare_t self:process { setexec signal getcap setcap }; + +allow seunshare_t self:fifo_file rw_file_perms; +allow seunshare_t self:unix_stream_socket create_stream_socket_perms; + +corecmd_exec_shell(seunshare_t) +corecmd_exec_bin(seunshare_t) + +files_read_etc_files(seunshare_t) +files_mounton_all_poly_members(seunshare_t) + +auth_use_nsswitch(seunshare_t) + +miscfiles_read_localization(seunshare_t) + +userdom_use_user_terminals(seunshare_t)