summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormm <mm@FreeBSD.org>2011-08-02 19:44:40 +0000
committermm <mm@FreeBSD.org>2011-08-02 19:44:40 +0000
commit2c26b14138e83cc617676a473fbfdf15958d3b1e (patch)
treee5767c30250e3e129d33b81be0709f2e1eda9ade
parenta1639c8fd44b7049b1a784f1d4c3e8d740972480 (diff)
downloadFreeBSD-src-2c26b14138e83cc617676a473fbfdf15958d3b1e.zip
FreeBSD-src-2c26b14138e83cc617676a473fbfdf15958d3b1e.tar.gz
Always disable mount and unmount for jails with enforce_statfs==2.
A working statfs(2) is required for umount(8) in jail. Reviewed by: pjd, kib Approved by: re (kib) MFC after: 2 weeks
-rw-r--r--sys/kern/kern_jail.c3
-rw-r--r--usr.sbin/jail/jail.89
2 files changed, 9 insertions, 3 deletions
diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c
index 584334a..050563b 100644
--- a/sys/kern/kern_jail.c
+++ b/sys/kern/kern_jail.c
@@ -3858,7 +3858,8 @@ prison_priv_check(struct ucred *cred, int priv)
case PRIV_VFS_UNMOUNT:
case PRIV_VFS_MOUNT_NONUSER:
case PRIV_VFS_MOUNT_OWNER:
- if (cred->cr_prison->pr_allow & PR_ALLOW_MOUNT)
+ if (cred->cr_prison->pr_allow & PR_ALLOW_MOUNT &&
+ cred->cr_prison->pr_enforce_statfs < 2)
return (0);
else
return (EPERM);
diff --git a/usr.sbin/jail/jail.8 b/usr.sbin/jail/jail.8
index 8ed913a..c5a2245 100644
--- a/usr.sbin/jail/jail.8
+++ b/usr.sbin/jail/jail.8
@@ -393,6 +393,9 @@ The
.Xr lsvfs 1
command can be used to find file system types available for mount from
within a jail.
+This permission is effective only if
+.Va enforce_statfs
+is set to a value lower than 2.
.It Va allow.quotas
The prison root may administer quotas on the jail's filesystem(s).
This includes filesystems that the jail may share with other jails or
@@ -746,9 +749,11 @@ It is not possible to
or
.Xr umount 8
any file system inside a jail unless the file system is marked
-jail-friendly and the jail's
+jail-friendly, the jail's
.Va allow.mount
-parameter is set.
+parameter is set and the jail's
+.Va enforce_statfs
+parameter is lower than 2.
.Pp
Multiple jails sharing the same file system can influence each other.
For example a user in one jail can fill the file system also
OpenPOWER on IntegriCloud