From owner-freebsd-rc@FreeBSD.ORG Sun Nov 29 16:05:52 2009 Return-Path: Delivered-To: freebsd-rc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7E0911065670; Sun, 29 Nov 2009 16:05:52 +0000 (UTC) (envelope-from merijn@inconsistent.nl) Received: from mail.inconsistent.nl (unknown [IPv6:2001:888:1744::3]) by mx1.freebsd.org (Postfix) with ESMTP id D341F8FC1B; Sun, 29 Nov 2009 16:05:51 +0000 (UTC) Received: from localhost (unknown [192.168.2.10]) (Authenticated sender: merijn@inconsistent.nl) by mail.inconsistent.nl (Postfix) with ESMTPSA id 6BFB520EB; Sun, 29 Nov 2009 17:05:10 +0100 (CET) Content-Type: multipart/mixed; boundary=----------Tq9rcKATAuiMEk3Wt5nWRG To: freebsd-hackers@freebsd.org, freebsd-rc@freebsd.org Date: Sun, 29 Nov 2009 17:05:03 +0100 MIME-Version: 1.0 From: "Merijn Verstraaten" Message-ID: User-Agent: Opera Mail/10.01 (MacIntel) Cc: Subject: [patch] Improved jail fstab functionality inside rc.d (needs testers and review) X-BeenThere: freebsd-rc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion related to /etc/rc.d design and implementation." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Nov 2009 16:05:52 -0000 ------------Tq9rcKATAuiMEk3Wt5nWRG Content-Type: text/plain; charset=iso-8859-15; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit My apologies if these are the wrong lists for this sort of thing but it was unclear to me where else to go with additions like this. I just finished hacking /etc/rc.d/jail to fix my two pet peeves, currently the rc framework only accepts a single fstab file per jail and (worse!) there is no way to specify the mountpoints in these fstab files relative to the jails root. This makes sharing of mounts (for example all my jails nullfs mounting the same ports tree) very cumbersome. This patch should allow you to specify multiple fstab files in the jail_fstab and jail__fstab variables and mount these in order. In addition the patch mangles the fstab files in such a way that any mountpoint in the fstab files starting with the text "ROOT" will have "ROOT" replaced with the jails rootdir. For example the following situation: rc.conf: jail_test_rootdir="/usr/jails/test" jail_test_fstab="/usr/jails/fstab /usr/jails/fstab.test" /usr/jails/fstab: /usr/ports ROOT/usr/ports nullfs ro 0 0 /usr/jails/fstab.test /path/to/some/folder ROOT/folder nullfs rw 0 0 This should result in /path/to/some/folder being mounted into /usr/jails/test/folder and /usr/ports into /usr/jails/test/usr/ports. Normal mountpoints (i.e. not prefixed with ROOT) should still be mounted as normal. Todo: The code probably needs cleaning up, it tried to confirm to the style of the surrounding code, but I didn't know how to handle stuff which resulted in either lines longer then 80 chars or very ugly line wrapping. Someone more at home in the rc.d framework should probably clean the patch up a little to conform to the style. In addition the "ROOT" prefix is now hardcoded, perhaps this should be a configurable option (jail_prefix) or something instead. If people have the time to review and/or test this patch I'd be grateful any comments/critiques are welcome. Please CC me when replying to this e-mail as I'm not currently subscribed to hackers@ or rc@. Kind regards, Merijn Verstraaten ------------Tq9rcKATAuiMEk3Wt5nWRG Content-Disposition: attachment; filename=jail.diff Content-Type: application/octet-stream; name=jail.diff Content-Transfer-Encoding: Base64 LS0tIC9ldGMvcmMuZC9qYWlsCTIwMDktMTEtMjkgMTQ6NTc6NTEuOTAzODQwNDg4 ICswMTAwCisrKyBqYWlsCTIwMDktMTEtMjkgMTY6Mjg6NTAuNDcxMzU0MjM2ICsw MTAwCkBAIC0zMDIsMTQgKzMwMiwxNyBAQAogCQlmaQogCWZpCiAJaWYgY2hlY2t5 ZXNubyBfbW91bnQ7IHRoZW4KLQkJWyAtZiAiJHtfZnN0YWJ9IiBdIHx8IHdhcm4g IiR7X2ZzdGFifSBkb2VzIG5vdCBleGlzdCIKLQkJdGFpbCAtciAke19mc3RhYn0g fCB3aGlsZSByZWFkIF9kZXZpY2UgX21vdW50cHQgX3Jlc3Q7IGRvCi0JCQljYXNl ICI6JHtfZGV2aWNlfSIgaW4KLQkJCTojKiB8IDopCi0JCQkJY29udGludWUKLQkJ CQk7OwotCQkJZXNhYwotCQkJc2VjdXJlX3Vtb3VudCAke19tb3VudHB0fQorCQlm b3IgX2ZzdGFiX2ZpbGUgaW4gJHtfZnN0YWJ9OyBkbworCQkJWyAtZiAiJHtfZnN0 YWJfZmlsZX0iIF0gfHwgd2FybiAiJHtfZnN0YWJfZmlsZX0gZG9lcyBub3QgZXhp c3QiCisJCQlzZWQgInMjUk9PVCMke19yb290ZGlyfSMiICR7X2ZzdGFiX2ZpbGV9 IHwKKwkJCSAgICB0YWlsIC1yIHwgd2hpbGUgcmVhZCBfZGV2aWNlIF9tb3VudHB0 IF9yZXN0OyBkbworCQkJCWNhc2UgIjoke19kZXZpY2V9IiBpbgorCQkJCTojKiB8 IDopCisJCQkJCWNvbnRpbnVlCisJCQkJCTs7CisJCQkJZXNhYworCQkJCXNlY3Vy ZV91bW91bnQgJHtfbW91bnRwdH0KKwkJCWRvbmUKIAkJZG9uZQogCWZpCiB9CkBA IC0zMjcsNyArMzMwLDggQEAKICMKIGphaWxfbW91bnRfZnN0YWIoKQogewotCWxv Y2FsIF9kZXZpY2UgX21vdW50cHQgX3Jlc3QKKwlsb2NhbCBfZnN0YWJfZmlsZSBf ZGV2aWNlIF9tb3VudHB0IF9yZXN0CisJX2ZzdGFiX2ZpbGU9IiQqIgogCiAJd2hp bGUgcmVhZCBfZGV2aWNlIF9tb3VudHB0IF9yZXN0OyBkbwogCQljYXNlICI6JHtf ZGV2aWNlfSIgaW4KQEAgLTMzNSwxMiArMzM5LDE3IEBACiAJCQljb250aW51ZQog CQkJOzsKIAkJZXNhYwotCQlpZiBpc19zeW1saW5rZWRfbW91bnRwb2ludCAke19t b3VudHB0fTsgdGhlbgotCQkJd2FybiAiJHtfbW91bnRwdH0gaGFzIHN5bWxpbmsg YXMgcGFyZW50IC0gbm90IG1vdW50aW5nIGZyb20gJHtfZnN0YWJ9IgorCQlpZiBb ICR7X21vdW50cHQlJS8qfSA9ICJST09UIiBdOyB0aGVuCisJCQlpZiBpc19zeW1s aW5rZWRfbW91bnRwb2ludCAiJHtfcm9vdGRpcn0vJHtfbW91bnRwdCMqL30iOyB0 aGVuCisJCQkJd2FybiAiJHtfcm9vdGRpcn0vJHtfbW91bnRwdCMqL30gaGFzIHN5 bWxpbmsgYXMgcGFyZW50IC0gbm90IG1vdW50aW5nIGZyb20gJHtfZnN0YWJfZmls ZX0iCisJCQkJcmV0dXJuCisJCQlmaQorCQllbGlmIGlzX3N5bWxpbmtlZF9tb3Vu dHBvaW50ICR7X21vdW50cHR9OyB0aGVuCisJCQl3YXJuICIke19tb3VudHB0fSBo YXMgc3ltbGluayBhcyBwYXJlbnQgLSBub3QgbW91bnRpbmcgZnJvbSAke19mc3Rh Yl9maWxlfSIKIAkJCXJldHVybgogCQlmaQotCWRvbmUgPCR7X2ZzdGFifQotCW1v dW50IC1hIC1GICIke19mc3RhYn0iCisJZG9uZSA8JHtfZnN0YWJfZmlsZX0KKwlz ZWQgInMjUk9PVCMke19yb290ZGlyfSMiICR7X2ZzdGFiX2ZpbGV9IHwgbW91bnQg LWEgLUYgL2Rldi9zdGRpbgogfQogCiAjIGphaWxfc2hvd19hZGRyZXNzZXMgamFp bApAQCAtNTc1LDEwICs1ODQsMTIgQEAKIAkJZmkKIAkJaWYgY2hlY2t5ZXNubyBf bW91bnQ7IHRoZW4KIAkJCWluZm8gIk1vdW50aW5nIGZzdGFiIGZvciBqYWlsICR7 X2phaWx9ICgke19mc3RhYn0pIgotCQkJaWYgWyAhIC1mICIke19mc3RhYn0iIF07 IHRoZW4KLQkJCQllcnIgMyAiJG5hbWU6ICR7X2ZzdGFifSBkb2VzIG5vdCBleGlz dCIKLQkJCWZpCi0JCQlqYWlsX21vdW50X2ZzdGFiCisJCQlmb3IgX2ZzdGFiX2Zp bGUgaW4gJHtfZnN0YWJ9OyBkbworCQkJCWlmIFsgISAtZiAiJHtfZnN0YWJfZmls ZX0iIF07IHRoZW4KKwkJCQkJZXJyIDMgIiRuYW1lOiAke19mc3RhYl9maWxlfSBk b2VzIG5vdCBleGlzdCIKKwkJCQlmaQorCQkJCWphaWxfbW91bnRfZnN0YWIgJHtf ZnN0YWJfZmlsZX0KKwkJCWRvbmUKIAkJZmkKIAkJaWYgY2hlY2t5ZXNubyBfZGV2 ZnM7IHRoZW4KIAkJCSMgSWYgZGV2ZnMgaXMgYWxyZWFkeSBtb3VudGVkIGhlcmUs IHNraXAgaXQuCg== ------------Tq9rcKATAuiMEk3Wt5nWRG--