aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Makonnen <mtm@FreeBSD.org>2004-02-03 07:15:32 +0000
committerMike Makonnen <mtm@FreeBSD.org>2004-02-03 07:15:32 +0000
commit2104ae4ea473ef0c48d0ebece6f31597b0c93ffc (patch)
tree5a431fb75e0824c020eb4b580ba400fbb19b5ee3
parentab2bf9ff6a77c350e8f20686a3650be797b5dcb5 (diff)
Notes
-rw-r--r--etc/rc.d/jail57
1 files changed, 32 insertions, 25 deletions
diff --git a/etc/rc.d/jail b/etc/rc.d/jail
index 6de00715ba6d..efbf856ae487 100644
--- a/etc/rc.d/jail
+++ b/etc/rc.d/jail
@@ -59,38 +59,45 @@ init_variables()
debug "$_j ruleset: $jail_ruleset"
}
-jail_start()
+# set_sysctl rc_knob mib msg
+# If the mib sysctl is set according to what rc_knob
+# specifies, this function does nothing. However if
+# rc_knob is set differently than mib, then the mib
+# is set accordingly and msg is displayed followed by
+# an '=" sign and the word 'YES' or 'NO'.
+#
+set_sysctl()
{
- echo -n 'Configuring jails:'
- echo -n ' set_hostname_allowed='
- if checkyesno jail_set_hostname_allow ; then
- echo -n 'YES'
- ${SYSCTL_W} 1>/dev/null security.jail.set_hostname_allowed=1
- else
- echo -n 'NO'
- ${SYSCTL_W} 1>/dev/null security.jail.set_hostname_allowed=0
- fi
+ _knob="$1"
+ _mib="$2"
+ _msg="$3"
- echo -n ' unixiproute_only='
- if checkyesno jail_socket_unixiproute_only ; then
- echo -n 'YES'
- ${SYSCTL_W} 1>/dev/null security.jail.socket_unixiproute_only=1
+ _current=`${SYSCTL} -n $_mib 2>/dev/null`
+ if checkyesno $_knob ; then
+ if [ "$_current" -ne 1 ]; then
+ echo -n " ${_msg}=YES"
+ ${SYSCTL_W} 1>/dev/null ${_mib}=1
+ fi
else
- echo -n 'NO'
- ${SYSCTL_W} 1>/dev/null security.jail.socket_unixiproute_only=0
+ if [ "$_current" -ne 0 ]; then
+ echo -n " ${_msg}=NO"
+ ${SYSCTL_W} 1>/dev/null ${_mib}=0
+ fi
fi
+}
- echo -n ' sysvipc_allow='
- if checkyesno jail_sysvipc_allow ; then
- echo -n 'YES'
- ${SYSCTL_W} 1>/dev/null security.jail.sysvipc_allowed=1
- else
- echo -n 'NO'
- ${SYSCTL_W} 1>/dev/null security.jail.sysvipc_allowed=0
- fi
+jail_start()
+{
+ echo -n 'Configuring jails:'
+ set_sysctl jail_set_hostname_allow security.jail.set_hostname_allowed \
+ set_hostname_allow
+ set_sysctl jail_socket_unixiproute_only \
+ security.jail.socket_unixiproute_only unixiproute_only
+ set_sysctl jail_sysvipc_allow security.jail.sysvipc_allowed \
+ sysvipc_allow
echo '.'
- echo -n 'Starting Jails:'
+ echo -n 'Starting jails:'
for _jail in ${jail_list}
do
init_variables $_jail