git: 7955efd574b9 - main - Add support for jail.conf.d

Kyle Evans kevans at FreeBSD.org
Fri Sep 10 05:30:32 UTC 2021


The branch main has been updated by kevans:

URL: https://cgit.FreeBSD.org/src/commit/?id=7955efd574b98601a95da45d6d8e7f452631fddd

commit 7955efd574b98601a95da45d6d8e7f452631fddd
Author:     Antranig Vartanian <antranigv at freebsd.am>
AuthorDate: 2021-09-08 07:07:49 +0000
Commit:     Kyle Evans <kevans at FreeBSD.org>
CommitDate: 2021-09-10 05:30:04 +0000

    Add support for jail.conf.d
    
    Using /etc/jail.{jailname}.conf is nice, however it makes /etc/ very
    messy if you have many jails.  This patch allows one to move these
    config files out of the way into /etc/jail.conf.d/{jailname}.conf.
    
    Note that the same caveat as /etc/jail.*.conf applies: the jail service
    will not autodiscover all of these for starting 'all' jails.  This is
    considered future work, since the behavior matches.
    
    Reviewed by:    kevans
    MFC after:      1 month
    Differential Revision:  https://reviews.freebsd.org/D24570
---
 etc/mtree/BSD.root.dist  | 2 ++
 libexec/rc/rc.d/jail     | 4 ++++
 share/man/man5/rc.conf.5 | 9 ++++++++-
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/etc/mtree/BSD.root.dist b/etc/mtree/BSD.root.dist
index f734f7891429..8bea31212217 100644
--- a/etc/mtree/BSD.root.dist
+++ b/etc/mtree/BSD.root.dist
@@ -56,6 +56,8 @@
         ..
         gss
         ..
+        jail.conf.d
+        ..
         kyua             tags=package=tests
         ..
         mail
diff --git a/libexec/rc/rc.d/jail b/libexec/rc/rc.d/jail
index ff4336131bc9..1d544501e32b 100755
--- a/libexec/rc/rc.d/jail
+++ b/libexec/rc/rc.d/jail
@@ -120,12 +120,16 @@ parse_options()
 	fi
 	eval _jconf=\"\${jail_${_jv}_conf:-/etc/jail.${_j}.conf}\"
 	eval _rootdir=\"\$jail_${_jv}_rootdir\"
+	eval _jconfdir=\"/etc/jail.conf.d/${_j}.conf\"
 	eval _hostname=\"\$jail_${_jv}_hostname\"
 	if [ -z "$_rootdir" -o \
 	     -z "$_hostname" ]; then
 		if [ -r "$_jconf" ]; then
 			_conf="$_jconf"
 			return 0
+		elif [ -r "$_jconfdir" ]; then
+			_conf="$_jconfdir"
+			return 0
 		elif [ -r "$jail_conf" ]; then
 			_conf="$jail_conf"
 			return 0
diff --git a/share/man/man5/rc.conf.5 b/share/man/man5/rc.conf.5
index 57404b8c0e89..b9d22a789c3a 100644
--- a/share/man/man5/rc.conf.5
+++ b/share/man/man5/rc.conf.5
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd July 8, 2021
+.Dd September 10, 2021
 .Dt RC.CONF 5
 .Os
 .Sh NAME
@@ -3883,6 +3883,13 @@ The configuration filename used by
 utility.
 The default value is
 .Pa /etc/jail.conf .
+.Pa /etc/jail.  Ns Ao Ar jname Ac Ns Va .conf
+and
+.Pa /etc/jail.conf.d/ Ns Ao Ar jname Ac Ns Va .conf
+will also be used if
+.Va Ao Ar jname Ac Va
+is set in
+.Va jail_list .
 .It Va jail_parallel_start
 .Pq Vt bool
 If set to


More information about the dev-commits-src-main mailing list