From owner-freebsd-bugs@FreeBSD.ORG Fri Sep 22 14:00:41 2006 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9DA4B16A4DD for ; Fri, 22 Sep 2006 14:00:41 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 05DA243D7B for ; Fri, 22 Sep 2006 14:00:38 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k8ME0bdG095157 for ; Fri, 22 Sep 2006 14:00:37 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k8ME0b7u095155; Fri, 22 Sep 2006 14:00:37 GMT (envelope-from gnats) Resent-Date: Fri, 22 Sep 2006 14:00:37 GMT Resent-Message-Id: <200609221400.k8ME0b7u095155@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Jeremie Le Hen Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E2E9616A407; Fri, 22 Sep 2006 14:00:05 +0000 (UTC) (envelope-from tataz@tataz.chchile.org) Received: from smtp4-g19.free.fr (smtp4-g19.free.fr [212.27.42.30]) by mx1.FreeBSD.org (Postfix) with ESMTP id 31A5843D46; Fri, 22 Sep 2006 14:00:05 +0000 (GMT) (envelope-from tataz@tataz.chchile.org) Received: from tatooine.tataz.chchile.org (tataz.chchile.org [82.233.239.98]) by smtp4-g19.free.fr (Postfix) with ESMTP id 468F44F387; Fri, 22 Sep 2006 16:00:04 +0200 (CEST) Received: from obiwan.tataz.chchile.org (unknown [192.168.1.25]) by tatooine.tataz.chchile.org (Postfix) with ESMTP id EE2EE9B4C1; Fri, 22 Sep 2006 14:00:09 +0000 (UTC) Received: by obiwan.tataz.chchile.org (Postfix, from userid 1000) id D9FBA408C; Fri, 22 Sep 2006 16:00:09 +0200 (CEST) Message-Id: <20060922140009.D9FBA408C@obiwan.tataz.chchile.org> Date: Fri, 22 Sep 2006 16:00:09 +0200 (CEST) From: Jeremie Le Hen To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: matteo@FreeBSD.org, Jeremie Le Hen , flz@FreeBSD.org Subject: misc/103486: [patch] rc.d/jail: mount fstab after devfs X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Jeremie Le Hen List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Sep 2006 14:00:41 -0000 >Number: 103486 >Category: misc >Synopsis: [patch] rc.d/jail: mount fstab after devfs >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Fri Sep 22 14:00:36 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Jeremie Le Hen >Release: FreeBSD 6.1-STABLE i386 >Organization: >Environment: System: FreeBSD obiwan 6.1-STABLE FreeBSD 6.1-STABLE #8: Sun Jun 25 18:27:14 CEST 2006 root@obiwan:/usr/obj/usr/src/sys/OBIWAN i386 >Description: The host administrator might sometime want to use the $jail__fstab to mount devfs in more than one directory inside the jail. >How-To-Repeat: Try to run a chrooted named(8) in a jail, it is currently impossible. Indeed, when $named_chroot_autoupdate is set to YES (the default), rc.d/named tries to mount devfs in $named_chrootdir/dev, which is obvisouly impossible from inside a jail. Thus it would be worth being possible to use $jail__fstab to mount $jail__rootdir/dev onto $jail__rootdir/$named_chrootdir/dev. This is a little bit hackish, but a least makes possible to run a chrooted named(8) in a jail. >Fix: Index: jail =================================================================== RCS file: /home/ncvs/src/etc/rc.d/jail,v retrieving revision 1.34 diff -u -p -u -p -r1.34 jail --- jail 30 May 2006 16:20:48 -0000 1.34 +++ jail 22 Sep 2006 13:16:47 -0000 @@ -154,6 +154,10 @@ set_sysctl() # jail_umount_fs() { + if checkyesno _mount; then + [ -f "${_fstab}" ] || warn "${_fstab} does not exist" + umount -a -F "${_fstab}" >/dev/null 2>&1 + fi if checkyesno _fdescfs; then if [ -d "${_fdescdir}" ] ; then umount -f ${_fdescdir} >/dev/null 2>&1 @@ -169,10 +173,6 @@ jail_umount_fs() umount -f ${_procdir} >/dev/null 2>&1 fi fi - if checkyesno _mount; then - [ -f "${_fstab}" ] || warn "${_fstab} does not exist" - umount -a -F "${_fstab}" >/dev/null 2>&1 - fi } jail_start() @@ -199,13 +199,6 @@ jail_start() if [ -n "${_interface}" ]; then ifconfig ${_interface} alias ${_ip} netmask 255.255.255.255 fi - if checkyesno _mount; then - info "Mounting fstab for jail ${_jail} (${_fstab})" - if [ ! -f "${_fstab}" ]; then - err 3 "$name: ${_fstab} does not exist" - fi - mount -a -F "${_fstab}" - fi if checkyesno _devfs; then # If devfs is already mounted here, skip it. df -t devfs "${_devdir}" >/dev/null @@ -239,6 +232,13 @@ jail_start() mount -t procfs proc "${_procdir}" fi fi + if checkyesno _mount; then + info "Mounting fstab for jail ${_jail} (${_fstab})" + if [ ! -f "${_fstab}" ]; then + err 3 "$name: ${_fstab} does not exist" + fi + mount -a -F "${_fstab}" + fi _tmp_jail=${_tmp_dir}/jail.$$ eval jail ${_flags} -i ${_rootdir} ${_hostname} \ ${_ip} ${_exec_start} > ${_tmp_jail} 2>&1 >Release-Note: >Audit-Trail: >Unformatted: