mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 12:54:27 +00:00
jail: avoid a clash with /etc/jail.conf.d between rc and jail(8)
Since 13.1, /etc/rc.d/jail has looked for a per-jail config file in /etc/jail.conf.d. For RELENG 14, the ".include" directive was added to jail(8), with a sample line in the jail.conf(5) man page that includes "/etc/jail.conf.d/*.conf". These two use cases don't work together. When the jail.conf.d files are included from a master jail.conf, the files in jail.conf.d are likely to hold only partial configurations, and shouldn't be directly loaded by rc.d/jail. But there are existing configurations that depend on the current rc.d behavior. While users could be advised not to include from /etc/jail.conf.d, it's the natural choice even if not mentioned in jail.conf.5. The workaround is for rc.d/jail to continue to load the individual files, but only when /etc/jail.conf doesn't include from that directory (via a simple grep test), This allows the current use while not breaking the previous use. Reported by: antranigv at freebsd.am Differential Revision: https://reviews.freebsd.org/D41962
This commit is contained in:
parent
5e29272bf5
commit
a2440348ee
|
@ -126,7 +126,9 @@ parse_options()
|
||||||
if [ -r "$_jconf" ]; then
|
if [ -r "$_jconf" ]; then
|
||||||
_conf="$_jconf"
|
_conf="$_jconf"
|
||||||
return 0
|
return 0
|
||||||
elif [ -r "$_jconfdir" ]; then
|
elif [ -r "$_jconfdir" ] && ! egrep -q \
|
||||||
|
'^\s*\.include\s*["'\'']?/etc/jail.conf.d/' "$jail_conf" \
|
||||||
|
2>/dev/null; then
|
||||||
_conf="$_jconfdir"
|
_conf="$_jconfdir"
|
||||||
return 0
|
return 0
|
||||||
elif [ -r "$jail_conf" ]; then
|
elif [ -r "$jail_conf" ]; then
|
||||||
|
|
Loading…
Reference in a new issue