Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Feb 2013 07:40:58 -0700
From:      Jamie Gritton <jamie@FreeBSD.org>
To:        Baptiste Daroussin <bapt@FreeBSD.org>
Cc:        jail@FreeBSD.org, fs@FreeBSD.org
Subject:   Re: Marking some FS as jailable
Message-ID:  <511CF77A.2080005@FreeBSD.org>
In-Reply-To: <20130214132715.GG44004@ithaqua.etoilebsd.net>
References:  <20130212194047.GE12760@ithaqua.etoilebsd.net> <511B1F55.3080500@FreeBSD.org> <20130214132715.GG44004@ithaqua.etoilebsd.net>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------040604050308040604010805
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

On 02/14/13 06:27, Baptiste Daroussin wrote:
> On Tue, Feb 12, 2013 at 10:06:29PM -0700, Jamie Gritton wrote:
>> On 02/12/13 12:40, Baptiste Daroussin wrote:
>>>
>>> I would like to mark some filesystem as jailable, here is the one I need:
>>> linprocfs, tmpfs and fdescfs, I was planning to do it with adding a
>>> allow.mount.${fs} for each one.
>>>
>>> Anyone has an objection?
>>
>> Would it make sense for linprocfs to use the existing allow.mount.procfs
>> flag?
>
> Here is a patch that uses allow.mount.procfs for linsysfs and linprocfs.
>
> It also addd a new allow.mount.tmpfs to allow tmpfs.
>
> It seems to work here, can anyone confirm this is the right way to do it?
>
> I'll commit in 2 parts: first lin*fs, second tmpfs related things
>
> http://people.freebsd.org/~bapt/jail-fs.diff

There are some problems. The usage on the mount side of things looks
correct, but it needs more on the jail side. I'm including a patch just
of that part, with a correction in jail.h and further changes in kern_jail.c

- Jamie

--------------040604050308040604010805
Content-Type: text/plain;
 name="jail-fs.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="jail-fs.diff"

Index: sys/jail.h
===================================================================
--- sys/jail.h	(revision 246791)
+++ sys/jail.h	(working copy)
@@ -227,7 +227,8 @@
 #define	PR_ALLOW_MOUNT_NULLFS		0x0100
 #define	PR_ALLOW_MOUNT_ZFS		0x0200
 #define	PR_ALLOW_MOUNT_PROCFS		0x0400
-#define	PR_ALLOW_ALL			0x07ff
+#define	PR_ALLOW_MOUNT_TMPFS		0x0800
+#define	PR_ALLOW_ALL			0x0fff
 
 /*
  * OSD methods
Index: kern/kern_jail.c
===================================================================
--- kern/kern_jail.c	(revision 246791)
+++ kern/kern_jail.c	(working copy)
@@ -206,6 +206,7 @@
 	"allow.mount.nullfs",
 	"allow.mount.zfs",
 	"allow.mount.procfs",
+	"allow.mount.tmpfs",
 };
 const size_t pr_allow_names_size = sizeof(pr_allow_names);
 
@@ -221,6 +222,7 @@
 	"allow.mount.nonullfs",
 	"allow.mount.nozfs",
 	"allow.mount.noprocfs",
+	"allow.mount.notmpfs",
 };
 const size_t pr_allow_nonames_size = sizeof(pr_allow_nonames);
 
@@ -4208,6 +4210,10 @@
     CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE,
     NULL, PR_ALLOW_MOUNT_PROCFS, sysctl_jail_default_allow, "I",
     "Processes in jail can mount the procfs file system");
+SYSCTL_PROC(_security_jail, OID_AUTO, mount_tmpfs_allowed,
+    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE,
+    NULL, PR_ALLOW_MOUNT_TMPFS, sysctl_jail_default_allow, "I",
+    "Processes in jail can mount the tmpfs file system");
 SYSCTL_PROC(_security_jail, OID_AUTO, mount_zfs_allowed,
     CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE,
     NULL, PR_ALLOW_MOUNT_ZFS, sysctl_jail_default_allow, "I",
@@ -4360,6 +4366,8 @@
     "B", "Jail may mount the nullfs file system");
 SYSCTL_JAIL_PARAM(_allow_mount, procfs, CTLTYPE_INT | CTLFLAG_RW,
     "B", "Jail may mount the procfs file system");
+SYSCTL_JAIL_PARAM(_allow_mount, tmpfs, CTLTYPE_INT | CTLFLAG_RW,
+    "B", "Jail may mount the tmpfs file system");
 SYSCTL_JAIL_PARAM(_allow_mount, zfs, CTLTYPE_INT | CTLFLAG_RW,
     "B", "Jail may mount the zfs file system");
 

--------------040604050308040604010805--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?511CF77A.2080005>