1#!/bin/sh 2# 3# $FreeBSD: src/etc/rc.d/jail,v 1.4 2003/05/05 15:38:41 mtm Exp $ 4# $DragonFly: src/etc/rc.d/jail,v 1.4 2005/11/19 21:47:32 swildner Exp $ 5# 6 7# PROVIDE: jail 8# REQUIRE: LOGIN 9# BEFORE: securelevel 10 11. /etc/rc.subr 12 13name="jail" 14rcvar=`set_rcvar` 15start_cmd="jail_start" 16stop_cmd="jail_stop" 17 18jail_start() 19{ 20 echo -n 'Configuring jails:' 21 echo -n ' set_hostname_allowed=' 22 if checkyesno jail_set_hostname_allow ; then 23 echo -n 'YES' 24 ${SYSCTL_W} 1>/dev/null jail.set_hostname_allowed=1 25 else 26 echo -n 'NO' 27 ${SYSCTL_W} 1>/dev/null jail.set_hostname_allowed=0 28 fi 29 30 echo -n ' unixiproute_only=' 31 if checkyesno jail_socket_unixiproute_only ; then 32 echo -n 'YES' 33 ${SYSCTL_W} 1>/dev/null jail.socket_unixiproute_only=1 34 else 35 echo -n 'NO' 36 ${SYSCTL_W} 1>/dev/null jail.socket_unixiproute_only=0 37 fi 38 39 echo -n ' sysvipc_allow=' 40 if checkyesno jail_sysvipc_allow ; then 41 echo -n 'YES' 42 ${SYSCTL_W} 1>/dev/null jail.sysvipc_allowed=1 43 else 44 echo -n 'NO' 45 ${SYSCTL_W} 1>/dev/null jail.sysvipc_allowed=0 46 fi 47 echo '.' 48 49 echo 'Starting Jails.' 50 for _jail in ${jail_list} 51 do 52 eval jail_rootdir=\"\$jail_${_jail}_rootdir\" 53 eval jail_hostname=\"\$jail_${_jail}_hostname\" 54 eval jail_ip=\"\$jail_${_jail}_ip\" 55 eval jail_exec=\"\$jail_${_jail}_exec\" 56 [ -z ${jail_exec} ] && jail_exec="/bin/sh /etc/rc" 57 58 jail ${jail_rootdir} ${jail_hostname} ${jail_ip} ${jail_exec} 59 done 60} 61 62jail_stop() 63{ 64 kill -TERM $(ps aux | awk '$8 ~ /.*J/ {print $2};') 65} 66 67 68load_rc_config $name 69run_rc_command "$1" 70