All of lore.kernel.org
 help / color / mirror / Atom feed
From: sven.vermeulen@siphos.be (Sven Vermeulen)
To: refpolicy@oss.tresys.com
Subject: [refpolicy] [PATCH 1/4] Support live ebuilds
Date: Thu, 28 Apr 2011 21:25:09 +0200	[thread overview]
Message-ID: <20110428192508.GA29963@siphos.be> (raw)

In Gentoo, live ebuilds exist (packages) which use the latest checkout of a
version controlled repository (git, svn, cvs, ...). During installation,
Portage checks out this repository in (by default)
/usr/portage/distfiles/svn-src. Currently, this is labelled portage_ebuild_t
but it is just plain wrong to allow the portage_sandbox_t to manage this
type (which, btw, it can't do currently, so live ebuild installations isn't
supported with the current policy).

To resolve this, create an additional type (portage_svnsrc_t) and label the
location accordingly. Also, allow portage_sandbox_t to manage the files,
directories and links that it checks out by allowing the necessary
privileges on portage_svnsrc_t.

Signed-off-by: Sven Vermeulen <sven.vermeulen@siphos.be>
---
 policy/modules/admin/portage.fc |    1 +
 policy/modules/admin/portage.if |    5 +++++
 policy/modules/admin/portage.te |    3 +++
 3 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/policy/modules/admin/portage.fc b/policy/modules/admin/portage.fc
index db46387..f6daba8 100644
--- a/policy/modules/admin/portage.fc
+++ b/policy/modules/admin/portage.fc
@@ -13,6 +13,7 @@
 /usr/lib(64)?/portage/bin/sandbox --	gen_context(system_u:object_r:portage_exec_t,s0)
 
 /usr/portage(/.*)?			gen_context(system_u:object_r:portage_ebuild_t,s0)
+/usr/portage/distfiles/svn-src(/.*)?	gen_context(system_u:object_r:portage_svnsrc_t,s0)
 
 /var/db/pkg(/.*)?			gen_context(system_u:object_r:portage_db_t,s0)
 /var/cache/edb(/.*)?			gen_context(system_u:object_r:portage_cache_t,s0)
diff --git a/policy/modules/admin/portage.if b/policy/modules/admin/portage.if
index 8aaa46d..a4026a9 100644
--- a/policy/modules/admin/portage.if
+++ b/policy/modules/admin/portage.if
@@ -123,6 +123,11 @@ interface(`portage_compile_domain',`
 	manage_sock_files_pattern($1, portage_tmpfs_t, portage_tmpfs_t)
 	fs_tmpfs_filetrans($1, portage_tmpfs_t, { dir file lnk_file sock_file fifo_file })
 
+	# Support live ebuilds
+	manage_dirs_pattern($1, portage_svnsrc_t, portage_svnsrc_t)
+	manage_files_pattern($1, portage_svnsrc_t, portage_svnsrc_t)
+	manage_lnk_files_pattern($1, portage_svnsrc_t, portage_svnsrc_t)
+
 	kernel_read_system_state($1)
 	kernel_read_network_state($1)
 	kernel_read_software_raid_state($1)
diff --git a/policy/modules/admin/portage.te b/policy/modules/admin/portage.te
index c633aea..8f41c2e 100644
--- a/policy/modules/admin/portage.te
+++ b/policy/modules/admin/portage.te
@@ -36,6 +36,9 @@ term_pty(portage_devpts_t)
 type portage_ebuild_t;
 files_type(portage_ebuild_t)
 
+type portage_svnsrc_t;
+files_type(portage_svnsrc_t)
+
 type portage_fetch_tmp_t;
 files_tmp_file(portage_fetch_tmp_t)
 
-- 
1.7.3.4

             reply	other threads:[~2011-04-28 19:25 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-28 19:25 Sven Vermeulen [this message]
2011-05-02 15:25 ` [refpolicy] [PATCH 1/4] Support live ebuilds Christopher J. PeBenito

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110428192508.GA29963@siphos.be \
    --to=sven.vermeulen@siphos.be \
    --cc=refpolicy@oss.tresys.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.