jail revision 119101
183364Sdfr#!/bin/sh
283364Sdfr#
383364Sdfr# $FreeBSD: head/etc/rc.d/jail 119101 2003-08-19 03:49:30Z kuriyama $
483364Sdfr#
583364Sdfr
683364Sdfr# PROVIDE: jail
783364Sdfr# REQUIRE: LOGIN
883364Sdfr# BEFORE: securelevel
983364Sdfr# KEYWORD: FreeBSD
1083364Sdfr
1183364Sdfr. /etc/rc.subr
1283364Sdfr
1383364Sdfrname="jail"
1483364Sdfrrcvar=`set_rcvar`
1583364Sdfrstart_cmd="jail_start"
1683364Sdfrstop_cmd="jail_stop"
1783364Sdfr
1883364Sdfrjail_start()
1983364Sdfr{
2083364Sdfr	echo -n 'Configuring jails:'
2183364Sdfr	echo -n ' set_hostname_allowed='
2283364Sdfr	if checkyesno jail_set_hostname_allow ; then 
2383364Sdfr		echo -n 'YES'
2483364Sdfr		${SYSCTL_W} 1>/dev/null security.jail.set_hostname_allowed=1
2583364Sdfr	else
2683364Sdfr		echo -n 'NO'
2783364Sdfr		${SYSCTL_W} 1>/dev/null security.jail.set_hostname_allowed=0
2883364Sdfr	fi
2983364Sdfr
3083364Sdfr	echo -n ' unixiproute_only='
3183364Sdfr	if checkyesno jail_socket_unixiproute_only ; then 
3283364Sdfr		echo -n 'YES'
3383364Sdfr		${SYSCTL_W} 1>/dev/null security.jail.socket_unixiproute_only=1
3483364Sdfr	else
3583364Sdfr		echo -n 'NO'
3683364Sdfr		${SYSCTL_W} 1>/dev/null security.jail.socket_unixiproute_only=0
3783364Sdfr	fi
3883364Sdfr
3983364Sdfr	echo -n ' sysvipc_allow='
4083364Sdfr	if checkyesno jail_sysvipc_allow ; then
4183364Sdfr		echo -n 'YES'
4283364Sdfr		${SYSCTL_W} 1>/dev/null security.jail.sysvipc_allowed=1
4383364Sdfr	else
4483364Sdfr		echo -n 'NO'
4583364Sdfr		${SYSCTL_W} 1>/dev/null security.jail.sysvipc_allowed=0
4683364Sdfr	fi
4783364Sdfr	echo '.'
4883364Sdfr
4983364Sdfr	echo 'Starting Jails.'
5083364Sdfr	for _jail in ${jail_list} 
5183364Sdfr	do
5283364Sdfr		eval jail_rootdir=\"\$jail_${_jail}_rootdir\"
5383364Sdfr		eval jail_hostname=\"\$jail_${_jail}_hostname\"
5483364Sdfr		eval jail_ip=\"\$jail_${_jail}_ip\"
5583364Sdfr		eval jail_exec=\"\$jail_${_jail}_exec\"
5683364Sdfr		[ -z "${jail_exec}" ] && jail_exec="/bin/sh /etc/rc"
5783364Sdfr		
5883364Sdfr		jail ${jail_rootdir} ${jail_hostname} ${jail_ip} ${jail_exec}
5983364Sdfr	done
6083364Sdfr}
6183364Sdfr
6283364Sdfrjail_stop()
6383364Sdfr{
6483364Sdfr	kill -TERM $(ps aux | awk '$8 ~ /.*J/ {print  $2};')
6583364Sdfr}
6683364Sdfr
6783364Sdfr
6883364Sdfrload_rc_config $name
6983364Sdfrrun_rc_command "$1"
7083364Sdfr