[Midnightbsd-cvs] src [8230] trunk/etc: allow to pass extra params for each jail

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sat Sep 17 16:33:34 EDT 2016


Revision: 8230
          http://svnweb.midnightbsd.org/src/?rev=8230
Author:   laffer1
Date:     2016-09-17 16:33:34 -0400 (Sat, 17 Sep 2016)
Log Message:
-----------
allow to pass extra params for each jail

Modified Paths:
--------------
    trunk/etc/defaults/rc.conf
    trunk/etc/rc.d/jail

Modified: trunk/etc/defaults/rc.conf
===================================================================
--- trunk/etc/defaults/rc.conf	2016-09-17 20:32:47 UTC (rev 8229)
+++ trunk/etc/defaults/rc.conf	2016-09-17 20:33:34 UTC (rev 8230)
@@ -726,6 +726,7 @@
 #jail_example_mount_enable="NO"			# mount/umount jail's fs
 #jail_example_fstab=""				# fstab(5) for mount/umount
 #jail_example_flags="-l -U root"		# flags for jail(8)
+#jail_example_parameters="allow.raw_sockets=1"	# extra parameters for this jail
 
 ##############################################################
 ### Define source_rc_confs, the mechanism used by /etc/rc.* ##

Modified: trunk/etc/rc.d/jail
===================================================================
--- trunk/etc/rc.d/jail	2016-09-17 20:32:47 UTC (rev 8229)
+++ trunk/etc/rc.d/jail	2016-09-17 20:33:34 UTC (rev 8230)
@@ -115,6 +115,8 @@
 	[ -z "${_flags}" ] && _flags="-l -U root"
 	eval _consolelog=\"\${jail_${_j}_consolelog:-${jail_consolelog}}\"
 	[ -z "${_consolelog}" ] && _consolelog="/var/log/jail_${_j}_console.log"
+	eval _parameters=\"\${jail_${_j}_parameters:-${jail_parameters}}\"
+	[ -z "${_parameters}" ] && _parameters=""
 	eval _fib=\"\${jail_${_j}_fib:-${jail_fib}}\"
 
 	# Debugging aid
@@ -193,6 +195,7 @@
 
 	debug "$_j flags: $_flags"
 	debug "$_j consolelog: $_consolelog"
+	debug "$_j parameters: $_parameters"
 
 	if [ -z "${_hostname}" ]; then
 		err 3 "$name: No hostname has been defined for ${_j}"
@@ -484,9 +487,19 @@
 		esac
 
 		# Append address to list of addresses for the jail command.
-		case "${_addrl}" in
-		"")	_addrl="${_addr}" ;;
-		*)	_addrl="${_addrl},${_addr}" ;;
+		case "${_type}" in
+		inet)
+			case "${_addrl}" in
+			"")	_addrl="${_addr}" ;;
+			*)	_addrl="${_addrl},${_addr}" ;;
+			esac
+			;;
+		inet6)
+			case "${_addr6l}" in
+			"")	_addr6l="${_addr}" ;;
+			*)	_addr6l="${_addr6l},${_addr}" ;;
+			esac
+			;;
 		esac
 
 		# Configure interface alias if requested by a given interface
@@ -576,6 +589,7 @@
 			continue;
 		fi
 		_addrl=""
+		_addr6l=""
 		jail_ips "add"
 		if [ -n "${_fib}" ]; then
 			_setfib="setfib -F '${_fib}'"
@@ -641,8 +655,8 @@
 			i=$((i + 1))
 		done
 
-		eval ${_setfib} jail -n ${_jail} ${_flags} -i ${_rootdir} ${_hostname} \
-			\"${_addrl}\" ${_exec_start} > ${_tmp_jail} 2>&1 \
+		eval ${_setfib} jail -n ${_jail} ${_flags} -i -c path=${_rootdir} host.hostname=${_hostname} \
+			ip4.addr=\"${_addrl}\" ip6.addr=\"${_addr6l}\" ${_parameters} command=${_exec_start} > ${_tmp_jail} 2>&1 \
 			</dev/null
 
 		if [ "$?" -eq 0 ] ; then



More information about the Midnightbsd-cvs mailing list